簡體   English   中英

從.ascx文件調用Javascript函數

[英]Call Javascript Function from .ascx file


我有一個名為“ change2()”的javascript函數,該函數在.ascx頁面的腳本標簽中定義。
我想從img標簽的onclick事件調用該函數(注意:img標簽也在同一頁上)。
必須將img標簽僅用於圖像。
我嘗試了以下所有方法,但不幸的是,它對我不起作用。

Test.ascx

    <script language="javascript" type="text/javascript">
        function change2() {
            alert("Hi");
        } 
    </script>




  <table>
        <tr>
          <td class="list">
               Most liked
          </td>
          <td>
              <img id="imgLkU" src='<%# WebHelper.GetBaseURL(Request) + "/images/slide_btn_down.png"%>'class="icon_right_panel" runat="server" onclick="change2();" alt="Slider" />
           </td>
          </tr>
     </table>

第二種方式:

<table>
            <tr>
              <td class="list">
                   Most liked
              </td>
              <td>
                  <a href="#" onclick="change2();"><img id="imgLkU" src='<%# WebHelper.GetBaseURL(Request) + "/images/slide_btn_down.png"%>'class="icon_right_panel" runat="server"  alt="Slider" /></a>
               </td>
              </tr>
         </table>

請給我您的建議,以便從同一頁面調用javascript函數。

如我所見, img id是imgLkU ,因此,您可以將事件“從外部”訂閱,而不是在img標簽本身中包括該調用,即像使用$ .on (或$ .click )一樣進行操作像這樣:

$.on('click','#imgLkU', function() { change2(); });
// or equivalent  $.on('click','#imgLkU', change2);

要么

$.('#imgLkU').click(function() { change2(); });
// or equivalent $.('#imgLkU').click(change2);

在同一腳本標簽中定義change2之后change2執行此操作。

我還建議您在change2 調用的函數表達式中進行change2定義和事件訂閱,以避免污染全局javascript名稱空間。

(function() { 
   // define and subscribe here
 })();

因為您的所有元素都具有runat="server" ,所以它們的onclick屬性保留給后端代碼actionlistener,它將在回發時執行。

保留onClientClick屬性,以允許您仍將javascript“偵聽器”附加到客戶端onclick

請記住,如果還連接了onclick偵聽器, onClientClick處理函數返回false將防止發生回發。 onClientclick在啟動回發之前執行)

嘗試這個 :

<img id="imgLkU" src='<%# WebHelper.GetBaseURL(Request) + "/images/slide_btn_down.png"%>'class="icon_right_panel" runat="server" onclientclick="change2();" alt="Slider" />

可以從document.ready函數直接調用以下函數

$(function () {
    $('#imgLkU').click(function () {
        //do what ever you want
    })
});

首先,因為您已經在使用服務器標記來設置URL,所以請在圖像上刪除runat="server" 如果仍然要使用runat="server" ,則可以:

1:將img更改為<asp:Image>標記,並使用ImageSource而不是srcOnClientClick而不是onclick

2:在后面的代碼中設置src屬性。

之后,任何點擊方法-從您的問題到所有答案-都應該起作用。

如果仍然沒有顯示警報,則開始刪除代碼,直到出現警報為止,然后從那里開始工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM