2

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

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

还是我必须遍历它?

注意:我设法让用户控制代码隐藏执行。

非常感谢 。

4

4 回答 4

4

尝试这个:

$('#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("..."); }); 
于 2011-04-24T00:21:02.547 回答
1

我遇到了类似的问题并找到了这个解决方案:使用这样的控件(在标题标签内部)将指向 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>

希望这可以帮助!

于 2013-06-18T18:46:59.957 回答
0

您需要在客户端检查 id 是否与 mybutton 相同?ASP.NET 将所有用户控件的客户端 ID 替换为属性runat="server"

可以查看源码查看修改后的id。

于 2011-04-23T10:06:51.760 回答
0

在 aspx 页面中,当您将按钮放置在占位符内时。客户 ID 自动更改。所以你必须使用带有选择器的 Jquery End。 http://api.jquery.com/attribute-ends-with-selector/

您使用 $ 符号来查找动态控件 ID。

$("input[id$=mybutton]").click(function () { alert("..."); }); 
于 2011-04-23T10:11:19.610 回答