jQuery + ASP.NET:jQuery点击事件不会触发

时间:2013-04-05 06:08:37

标签: jquery asp.net

我在ASP.NET网站中使用JQuery时遇到问题。我想将一个公共点击处理程序绑定到多个类似的元素(通过ListView为熟悉ASP.NET的人生成)。我的假设是使用类选择器如下(作为示例):     

$('.standard-group').click(function () {
    alert($(this).attr("id"));
});

这与一系列具有此类的div有关:     

<div class="standard-group">
    some content
</div>

<div class="standard-group">
    some other content
</div>

此外,内容在ContentPlaceholder内生成并合并到母版页(实际上是2个嵌套母版页)。我已经尝试将<script></script>标记之间的点击处理程序放在第二个ContentPlaceholder中,将其内容注入页面的<head>部分,尝试将内容放在主ContentPlaceholder中,但都无济于事。最终发生的是生成的页面正确加载,我可以检查源并在那里看到函数,但不会引发任何事件。我怀疑这与主页/服务器处理场景有关,但无法确定它。

有任何帮助吗?

2 个答案:

答案 0 :(得分:1)

使用document

将点击事件委托给on()
 $(document).on('click','.standard-group',function () {
    alert($(this).attr("id"));
});

link了解有关on()

的更多信息

答案 1 :(得分:1)

添加事件的脚本可能在创建元素之前执行,您可以使用on()将事件委托给文档。

$(document).on('click', '.standard-group', function () {
    alert($(this).attr("id"));
});

委派活动

  

事件处理程序仅绑定到当前选定的元素;他们   在您的代码调用.on()时页面上必须存在。   要确保元素存在且可以选择,请执行事件   绑定在文档就绪处理程序中的元素   页面上的HTML标记。如果将新HTML注入页面,   选择元素并在新HTML之后附加事件处理程序   放入页面。或者,使用委派事件来附加事件   处理程序,如下所述。 Reference