2010-05-29 98 views
0

這是我的jQuery代碼jQuery的AJAX的綁定不起作用加載HTML

jQuery(document).ready (function() { 

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


}); 

它正常文檔的偉大工程。但是當我使用ajax加載一些HTM(即一些帶有.post屬性的div)並將其嵌入到我的DOM中時。

上述代碼不適用於這些div。

回答

3

嘗試使用live

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

或者更好的delegate

jQuery(document).ready (function() { 
    $('#posts').delegate('.post','mouseenter mouseleave', function() { 
     $(this).filter('.btn').toggleClass('hidden'); 
    }); 
}); 
+0

嗨,我試過這一個,它不工作在靜態和ajax加載內容以及。而且我希望它能夠一次性處理靜態內容和加載的內容。 – 2010-05-29 15:24:24

+0

Live或委託應該使事件觸發靜態和加載的內容。必須有其他事情正在進行。 – PetersenDidIt 2010-05-29 15:31:51

+0

沒有鎖..我不知道它是什麼..但綁定工作正常與靜態內容和生活和委託似乎並沒有工作 – 2010-05-29 15:35:29

2

您的計時可能是關閉的,因爲.post屬性必須實際存在於dom中,然後才能將任何東西綁定到它。

+0

感謝知識。那麼解決方法是什麼? – 2010-05-29 15:24:05

+0

看看這是否有幫助:http://api.jquery.com/delegate/使用'$('body')。委託('。post','mouseenter mouseleave',f'等 – edl 2010-05-29 15:33:36

+0

我的意思是'body'as你的選擇器或任何外部元素你divs包含英寸 – edl 2010-05-29 15:40:25