[英]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
而不是src
和OnClientClick
而不是onclick
。
2:在后面的代碼中設置src
屬性。
之后,任何點擊方法-從您的問題到所有答案-都應該起作用。
如果仍然沒有顯示警報,則開始刪除代碼,直到出現警報為止,然后從那里開始工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.