2009-06-16 36 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()有一些缺點,並且折舊。