Jquery Bind не работает на AJAX-загруженном HTML - PullRequest
0 голосов
/ 29 мая 2010

Это мой код JQuery

jQuery(document).ready (function() {

   // post
    $('.post').bind('mouseenter mouseleave', function() {
        $(this).filter('.btn').toggleClass('hidden');
    });


});

Отлично работает на обычном документе. но когда я загружаю некоторые HTM: (то есть некоторые div с атрибутами .post), используя ajax и встраиваю его в мой DOM.

Приведенный выше код не работает с этими div.

Ответы [ 2 ]

3 голосов
/ 29 мая 2010

Попробуйте использовать live :

jQuery(document).ready (function() {
    $('.post').live('mouseenter mouseleave', function() {
        $(this).filter('.btn').toggleClass('hidden');
    });
});

Или еще лучше делегат

jQuery(document).ready (function() {
    $('#posts').delegate('.post','mouseenter mouseleave', function() {
        $(this).filter('.btn').toggleClass('hidden');
    });
});
2 голосов
/ 29 мая 2010

Возможно, ваше время выключено, поскольку div с атрибутами .post должен действительно существовать в dom, прежде чем вы сможете связать что-либо с ним.

...