[英]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.