首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jquery click不适用于ajax生成的内容

jquery click不适用于ajax生成的内容
EN

Stack Overflow用户
提问于 2012-02-19 05:37:06
回答 4查看 97.5K关注 0票数 80

我正在使用$(".button").on("click", function(){ });

点击一个在容器上的按钮,然后ajax调用完成,内容用新的东西更新,然后当我尝试点击.button时,它不起作用……当我单击该按钮时,不会返回任何内容。

我甚至试过

$(".button").live("click", function(){ });

$(".button").click(function(){ });

我怎么才能让它工作呢?

html编辑: my

<div class="container">
   <ul>
       <li>item1</li>
       <li>item2</li>
       <li>item3</li>
   </ul>
   <input type="button" value="reload" class="button" />
</div>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-19 05:53:16

应该这样做。

$('body').on('click', '.button', function (){
        alert('click!');
    });

如果您有一个在ajax请求期间不会更改的容器,则性能会更高:

$('.container').on('click', '.button', function (){
        alert('click!');
    });

始终将委托事件绑定到将包含动态元素的最接近的静态元素。

票数 161
EN

Stack Overflow用户

发布于 2012-02-19 05:51:21

好吧,我通过正确使用.on()函数解决了我的问题,因为我缺少一个参数。

而不是

$(".button").on("click", function() { } );

我用过

$(".container").on("click", ".button", function() { } );
票数 41
EN

Stack Overflow用户

发布于 2013-04-03 19:52:42

而不是:

$(".button").on("click", function() { } );

我使用:

$(".container").on("click", ".button", function() { } );

我用过这个,它起作用了。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9344306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档