Jquery不使用usercontrol

时间:2011-04-23 09:49:17

标签: jquery asp.net webusercontrol

我在usercontrol中有一个按钮。 usercontrol被加载(添加)到占位符 某事件。 问题是这个按钮的简单jquery点击事件不起作用。 我错过了什么?选择器应该是什么样的?

$('#mybutton').click(function () { alert("..."); }); 

或者我必须走到它?

注意:我设法执行了usercontrol代码隐藏。

非常感谢。

4 个答案:

答案 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>

希望这有帮助!