我在 usercontrol 中有一个按钮。用户控件由某个事件加载(添加)到占位符。问题是此按钮的简单 jquery 单击事件不起作用。我错过了什么?选择器应该是什么样的?
$('#mybutton').click(function () { alert("..."); });
还是我必须遍历它?
注意:我设法让用户控制代码隐藏执行。
非常感谢 。
我在 usercontrol 中有一个按钮。用户控件由某个事件加载(添加)到占位符。问题是此按钮的简单 jquery 单击事件不起作用。我错过了什么?选择器应该是什么样的?
$('#mybutton').click(function () { alert("..."); });
还是我必须遍历它?
注意:我设法让用户控制代码隐藏执行。
非常感谢 。
尝试这个:
$('#mybutton').live("click", function () { alert("..."); });
由于控件 #mybutton 在 $(document).ready() 触发后添加到页面,因此 jQuery 无法将处理程序添加到该对象。live 意味着,无论何时以及如何创建元素,它的“click”事件都将绑定到作为第二个参数提供的函数。
顺便提一句。#mybutton 假定元素是标准的 html 对象,或者是渲染后保留 ID 和 NAME 作为 mybutton 的 ASP 控件。如果不是,请替换$("#mybutton")
为$("#<%= mybutton.ClientID %>")
或尝试将 ASP 控件的 ClientIDMode 设置为静态,或通过类名访问该控件。
编辑:
未来附加事件处理程序的建议方法是
$('#mybutton').on("click", function () { alert("..."); });
我遇到了类似的问题并找到了这个解决方案:使用这样的控件(在标题标签内部)将指向 jquery 文件的链接和一个空的脚本标签放在页面上:
<script type="text/javascript" src="../scripts/jquery-1.10.1.min.js" />
<script type="text/javascript" language="javascript"></script>
然后在用户控件本身(无标题标签):
<script type="text/javascript" language="javascript">
$(document).ready(function() {
//your function here.
});
</script>
希望这可以帮助!
您需要在客户端检查 id 是否与 mybutton 相同?ASP.NET 将所有用户控件的客户端 ID 替换为属性runat="server"
。
可以查看源码查看修改后的id。
在 aspx 页面中,当您将按钮放置在占位符内时。客户 ID 自动更改。所以你必须使用带有选择器的 Jquery End。 http://api.jquery.com/attribute-ends-with-selector/
您使用 $ 符号来查找动态控件 ID。
$("input[id$=mybutton]").click(function () { alert("..."); });