2012-02-25 12 views
0

我有()與.append添加DOM元素和喜歡的東西:live()和on()方法是不是等價的?

myObject.live({ 
    mouseenter: function() { // do something 

,這工作得很好,但在jQuery 1.7表明,我已經在改變了它()。但用on()相同的函數不起作用。我應該使用live()還是有一些我錯過了on()以使其與新的DOM節點一起工作?

由於jQuery的文檔指出,這些功能非常相似:

現場();

$("p").live({ 
click: function() { 
$(this).after("<p>Another paragraph!</p>"); 
}, 
mouseover: function() { 
$(this).addClass("over"); 
    }, 
    mouseout: function() { 
    $(this).removeClass("over"); 
    } 
}); 

on();

$("div.test").on({ 
click: function(){ 
$(this).toggleClass("active"); 
    }, 
mouseenter: function(){ 
$(this).addClass("inside"); 
}, 
mouseleave: function(){ 
    $(this).removeClass("inside"); 
} 
}); 

後者將不會與添加.append()的新節點一起工作;這是正確的嗎?

+0

你有沒有更換現場()與()或檢查在()規範的用法,並使其合適? – 2012-02-25 12:21:13

+0

實際上我已經開始使用(),但看到它沒有按預期工作,我試過live(),這就是爲什麼我在這裏。 – Daniele 2012-02-25 12:25:30

+0

我不相信他們是相等的 - 看到這個小提琴:http://jsfiddle.net/jeffz2012/eEzwd/1/ – Jeffz 2012-10-14 02:25:01

回答

2
$(document).on('mouseenter', myObject, function() { 
    //do something 
}); 
相關問題