我有一个名为'change2()'的javascript函数,它在 .ascx 页面的脚本标记中定义。
我想从 img 标签的onclick事件中调用该函数(注意:img标签也在同一页面上)。
仅对图像使用img标签是必须的
我尝试了以下所有方法,但不幸的是它对我不起作用。
Test.ascx
libB.cpp
第二种方式:
<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>
请告诉我你从同一页面调用javascript函数的建议。
答案 0 :(得分:1)
正如我所看到的,img
ID为imgLkU
,因此,您可以在“{1}}标记本身中包含调用”,而不是“从外部”订阅该事件,即使用$.on,(或$.click)这样做:
img
或
$.on('click','#imgLkU', function() { change2(); });
// or equivalent $.on('click','#imgLkU', change2);
在同一个脚本标记中定义$.('#imgLkU').click(function() { change2(); });
// or equivalent $.('#imgLkU').click(change2);
后立即执行。
我还建议您在inmediately invoked function expression内执行change2
定义和事件订阅,以避免污染全局javascript命名空间。
change2
答案 1 :(得分:0)
因为你的元素都有runat="server"
,所以它们的onclick
属性是为后端代码actionlistener保留的,后者将在回发时执行。
保留onClientClick
属性,以便您仍然可以将javascript“侦听器”附加到客户端onclick
。
请记住,如果false
侦听器也已连接,则从onClientClick
处理程序返回onclick
将阻止回发发生。 (onClientclick
在启动回发之前执行)
试试这个:
<img id="imgLkU" src='<%# WebHelper.GetBaseURL(Request) + "/images/slide_btn_down.png"%>'class="icon_right_panel" runat="server" onclientclick="change2();" alt="Slider" />
答案 2 :(得分:0)
可以从document.ready
函数直接调用以下函数,如
$(function () {
$('#imgLkU').click(function () {
//do what ever you want
})
});
答案 3 :(得分:0)
首先,取出图像上的runat="server"
,因为您已经在使用服务器标签来设置网址。如果您仍想使用runat="server"
,可以:
1:将您的img更改为<asp:Image>
代码并使用ImageSource
代替src
和OnClientClick
代替onclick
。
2:在后面的代码中设置src
属性。
之后,任何点击方法 - 从您的问题到所有答案 - 都应该有效。
如果仍然没有显示警告,那么就开始取出代码直到它完成并从那里开始工作......