Как переопределить функцию javascript (записанную в файле .cs html) в отдельный файл. js - PullRequest
0 голосов
/ 06 мая 2020

Это моя функция в файле .cs html, и я хочу переопределить эту функцию в моем новом файле. js, чтобы любой код, который я пишу в файле. js в этой функции, должен выполняться, а не что написано в файле .cs html.

$("#assoc-search-popup").kendoButton({
  enable: true,
  click: function(e) {
    $.ajax({
      cache: false,
      type: "POST",
      url: "/Search/AssocLookup",
      data: {
        "lookupEntityName": lookupEntityName
      },
      success: function(data) {
        var lookup_popup = $("#lookup_popup_content");
        lookup_popup.html("");
        lookup_popup.html(data);

        $('.searchbar-toggle').click(function(e) {
          toggleFilterPane();
          if ($("#divButtons").hasClass("search-popup-btn_expand")) {
            $("#divButtons").removeClass("search-popup-btn_expand");
            $("#divButtons").addClass("search-popup-btm_collapse");
          } else if ($("#divButtons").hasClass("search-popup-btm_collapse")) {
            $("#divButtons").removeClass("search-popup-btm_collapse");
            $("#divButtons").addClass("search-popup-btn_expand");
          }
        });

        $("#btnSelectItem").attr("search-lookup-type", "inheritance");

        ifPopup("lookup_popup");
      }
    });
  });
});
<a id="assoc-search-popup1" style="display: inline-block;" 
href="javascript:void(0)" class="associate-and-inherit-link" 
data-associatedentityname="Logistics" 
data-associatedentityid="1E74AF39-6B99-4685-9C3F-5F47DB47A410" 
data-associationname="Logistics"
data- associatedmultiplicity="Many" 
data-inheritancepriority="2" 
data-associatedentitydisplayname="Logistics" 
data-hasviewpermission="true" 
data-metadata_display_name="Logistics" 
data-metadata_display_name_plaintext="Logistics" 
data-islookup="true"
data_lookupentityname="Logistics">
  <span>Logistics</span>
  <span class="inherit_details_add" style="float: right !important;"></span>
</a>

1 Ответ

0 голосов
/ 06 мая 2020

Самый быстрый - сделать это после загрузки и после другого скрипта:

Обратите внимание, что код $ clone.on () будет $ clone.kendoButton () в вашем случае

$(function() { // after page load
  let $link = $("#assoc-search-popup1");
  let $clone = $link.clone(false, false); // without event handlers
  $clone.on("click", function() {
    alert("replaced event handler");
  });
  $link.replaceWith($clone);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="container">
  <a id="assoc-search-popup1" style="display: inline-block;" href="javascript:void(0)" class="associate-and-inherit-link" data-associatedentityname="Logistics" data-associatedentityid="1E74AF39-6B99-4685-9C3F-5F47DB47A410" data-associationname="Logistics"
    data- associatedmultiplicity="Many" data-inheritancepriority="2" data-associatedentitydisplayname="Logistics" data-hasviewpermission="true" data-metadata_display_name="Logistics" data-metadata_display_name_plaintext="Logistics" data-islookup="true"
    data_lookupentityname="Logistics">
    <span>Logistics</span>
    <span class="inherit_details_add" style="float: right !important;"></span>
  </a>
  <script>
    $("#assoc-search-popup1").on("click", function() {
      alert("event handler to be replaced"); // your initial kendo button
    });
  </script>
</div>
...