1

我在 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 中的内容一起放置,但均无济于事。最终发生的是生成的页面正确加载,我可以检查源代码并在那里查看函数,但没有引发任何事件。我怀疑这与母版页/服务器处理方案有关,但无法确定。

有什么帮助吗?

4

2 回答 2

1

将点击事件委托给documentwithon()

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

链接以了解更多信息on()

于 2013-04-05T06:10:46.133 回答
1

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

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

委托事件

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

于 2013-04-05T06:11:31.993 回答