live()和on()方法不等同?

时间:2012-02-25 12:17:16

标签: jquery

我有一个添加了.append()的DOM元素,如:

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

这样可以正常工作,但正如jquery 1.7建议的那样,我已经用on()更改了它。但是使用on()时,相同的功能不起作用。我应该使用live()还是我在()上缺少的东西,以使它适用于新的DOM节点?

正如jQuery文档所述,这些功能非常相似:

住();

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

在();

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

后者不适用于添加.append()的新节点;这是对的吗?

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

$(document).on('mouseenter', myObject, function() {
    //do something
});