2009-06-16 54 views
3

再次调用该函数就绪()我有这样的代码我可以在jQuery的

$(".insert").click(function(){ 
      $(".insert").ajaxStop(function(){ 
       $(".load").hide(); 
      }); 
      $(".insert").ajaxStart(function(){ 
       $(".load").show(); 
      }); 

      $.ajax({ 
       type: "GET", 
       url: "edit.php", 
       data: "action=add", 
       success: function(msg){ 

        $(".control").append(msg); 
       } 
      }); 


     }); 

,你可以看到这个代码追加edit.php的HTML响应。控制

问题

追加HTML以后。所有jQuery的变化,它不会应用..因为$(文件)。就绪()这个HTML代码在出生之前就已经叫...

我可以调用$ (文件)。就绪()每当我做任何改变?

+1

我想要应用当我操作页面的DOM时应用在页面上的相同jQuery代码。 – Sulaiman 2009-06-16 00:45:45

回答

6

jQuery live看看。它意味着为新元素自动绑定事件。它适用于点击,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,keydown,按键和键盘。

+0

这是一个小技巧,但live()不会重新绑定任何事件。 – nickf 2009-06-16 00:20:39

+0

谢谢,nickf。我改进了我的措辞。 – 2009-06-16 00:22:55

0

如果需要,要当文档准备好运行,在$(document).ready(function(){});包裹它,它会在适当的时候运行。

您可以添加规则,在多个地方的document的。就绪()方法。

9

如果你能在你的document.ready函数在做什么细说了,我也许可以给出更具体的帮助。您可能会在live()函数中找到您需要的东西,它可以模拟将事件应用于对象,即使它们在调用live()后被添加到DOM中。

虽则回答你的问题,是你可以仅仅通过这样调用该事件处理程序:

$(document).ready(); 
1

是,调用函数准备用一个参数(不管它是一个函数或匿名函数的引用),将它添加到函数链的jQuery的事件调用。

2

我解决了关闭此需求,并再次对事件 的如:

 $("div.value").off("click"); 
     $("img.cancelEdit").off("click"); 

     $("div.value").on("click", function (e) { 
      var $this = $(this); 
      $this.hide(); 
      $this.next().show(); 
     }); 

     $("img.cancelEdit").on("click", function (e) { 
      var $this = $(this); 
      $this.parent().hide(); 
      $this.parent().prev().show(); 
     }); 

,您可以使用Selector.Live();

0

使用on(),而不是活的()。 live()有一些缺点,并且折旧。