我在usercontrol中有一个按钮。 usercontrol被加载(添加)到占位符 某事件。 问题是这个按钮的简单jquery点击事件不起作用。 我错过了什么?选择器应该是什么样的?
$('#mybutton').click(function () { alert("..."); });
或者我必须走到它?
注意:我设法执行了usercontrol代码隐藏。
非常感谢。
答案 0 :(得分:4)
试试这个:
$('#mybutton').live("click", function () { alert("..."); });
由于控件#mybutton被添加到页面AFTER $(document).ready()触发,jQuery无法将处理程序添加到该对象。实时意味着,无论何时以及如何创建元素,它的“click”事件都将被绑定到作为第二个参数提供的函数。
顺便说一句。 #mybutton假定元素是标准html对象或ASP控件,在渲染后保留ID和NAME作为mybutton。如果不是,请将$("#mybutton")
替换为$("#<%= mybutton.ClientID %>")
或尝试将ASP控件的ClientIDMode设置为Static,或者按类名访问控件。
修改强>
向前推荐附加事件处理程序的方法是
$('#mybutton').on("click", function () { alert("..."); });
答案 1 :(得分:0)
您需要在客户端检查id与mybutton相同吗? ASP.NET使用属性runat="server"
替换所有用户控件的客户端ID。
您可以查看源代码以查看修改后的ID。
答案 2 :(得分:0)
将按钮放在占位符内时,在aspx页面中。客户端ID自动更改。所以你必须使用带有选择器的Jquery End。 http://api.jquery.com/attribute-ends-with-selector/
使用$ sign用来查找动态控件ID。
$("input[id$=mybutton]").click(function () { alert("..."); });
答案 3 :(得分:0)
我遇到了类似的问题并找到了这个解决方案:使用这样的控件(在标头标签内)将链接放到页面上的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>
希望这有帮助!