Apply jquery code on all elements

时光怂恿深爱的人放手 提交于 2019-12-24 06:44:34

问题


how can I apply a jquery function to elements that are loaded with ajax?

<span class="h">Test</span><br /><br />
<span class="h">Test</span><br /><br />
<span class="h">Test</span><br /><br />
....
<span class="h">Test</span><br /><br />
<script type="text/javascript">
    $(document).ready(function() {
    $('.h').click(function() {
        alert("test");
    });
});
</script>

So, this works perfectly. Every click on a span element returns an alert. But there the click function is not applied to the elements loaded with ajax:

<span class="h">Test</span><br /><br />
<span class="h">Test</span><br /><br />
<span class="h">Test</span><br /><br />
....
<span class="h">Test</span><br /><br />
<script type="text/javascript">

    $(window).scroll(function(){
    if  ($(window).scrollTop() == $(document).height() - $(window).height()) {
        $('body').append('<span class="h">Test3</span><br /><br />');
    }
    });

    $(document).ready(function() {
    $('.h').click(function() {
        alert("test");
    });
});
</script>

How can I solve that issue?


回答1:


jQuery's live() is what you'll want:

$('.h').live('click', function () {
  // Do something!
}



回答2:


The click() function only adds a listener to the elements present at th time it was called. You need to call it again on any element, you add later on.

Or, as @jerluc stated, use the live() function.




回答3:


You must use live instead of click, so that the event is binded also to newly appended items:

$('.h').live('click', function() {
    alert("test");
});



回答4:


You need the live function to bind the event to elements created dynamically:

$('.h').live('click', function() {
    alert("test");
});



回答5:


You aren't reapplying the behaviour. You need to use jQuery's live method to keep checking the DOM for new elements.

Demonstration of live




回答6:


     $(document).ready(function() {
         $('.h').live('click', function() {
            alert("test");
         });
     });


来源:https://stackoverflow.com/questions/6580760/apply-jquery-code-on-all-elements

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!