jquery click对ajax生成的内容不起作用

fxu*_*ser 76 ajax jquery click live

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

单击一个容器上的按钮,然后ajax调用完成,内容更新新东西,然后当我尝试点击.button它不会工作...当我点击按钮时,什么都不会返回.

我甚至试过了

$(".button").live("click", function(){ });
Run Code Online (Sandbox Code Playgroud)

要么

$(".button").click(function(){ });
Run Code Online (Sandbox Code Playgroud)

我怎样才能使它工作?

编辑: 我的HTML:

<div class="container">
   <ul>
       <li>item1</li>
       <li>item2</li>
       <li>item3</li>
   </ul>
   <input type="button" value="reload" class="button" />
</div>
Run Code Online (Sandbox Code Playgroud)

gdo*_*ica 152

应该这样做.

$('body').on('click', '.button', function (){
        alert('click!');
    });
Run Code Online (Sandbox Code Playgroud)

如果你有一个在ajax请求期间没有改变的容器,那么性能更高:

$('.container').on('click', '.button', function (){
        alert('click!');
    });
Run Code Online (Sandbox Code Playgroud)

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


fxu*_*ser 40

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

代替

$(".button").on("click", function() { } );
Run Code Online (Sandbox Code Playgroud)

我用了

$(".container").on("click", ".button", function() { } );
Run Code Online (Sandbox Code Playgroud)


小智 8

代替:

$(".button").on("click", function() { } );
Run Code Online (Sandbox Code Playgroud)

我用了:

$(".container").on("click", ".button", function() { } );
Run Code Online (Sandbox Code Playgroud)

我用过这个并且有效.