2011-07-22 181 views
1

我正在學習jQuery,我不知道如何「通知」腳本發生了什麼。jQuery懸停live()?

例如,當我將一個.container懸停時,它會向其添加「灰色」類。但是當我想用新創建的「灰色」div做任何事情時,沒有任何工作。我聽說過live()函數,但我不確定這是好方法嗎?

jQuery('.container').hover(function() { 
     jQuery(this).animate({opacity: '0.5'},1000); 
     jQuery(this).addClass('grey'); 
    }); 

    jQuery('.grey').hover(function() { 
     jQuery(this).animate({opacity: '0'},100); 
    }); 

直播:http://jsfiddle.net/n5kpM/

+1

您是否檢查過文檔? – SLaks

+0

http://api.jquery.com/live – SLaks

回答

2

從jQuery的1.7+ .live()是deprecated,並.delegate()一直superseded通過.on()方法。

使用.on().off()代替.live()和.die()。使用.on()代替.delegate()。

轉換舊代碼很簡單as explained here


live正是你想要的。由於.grey元素在您撥打hover時不存在,因此無法按您的方式工作。使用live可讓您在元素存在之前應用處理程序。

但有一點需要注意,您不能直接使用livehover。你需要分別做2個事件。 jQuery live hover

2

live被稱爲像這樣:

$(...).live('mouseenter', function() { ... });