2012-02-05 77 views
1

請原諒我的英語。 我一直在試圖創建一個動態表格,它可以在編輯按鈕後編輯其中的數據。 問題是我在最後一列創建複選框的列後,我只是不能在jQuery上執行它的點擊功能,因爲我想。如果按下一個特定的複選框,則取消所有複選框

創建函數如下:

$("#meetingspanel td:last").each(function(event){ // Adding the checking column and showing the editing buttons  
     $("#btnDelete").fadeIn("slow"); 
     $("#btnRename").fadeIn("slow"); 
     $("<td style=border:0px><input type='checkbox' id='btncb'></td>").insertAfter($("td:nth-child(6)")); 
}); 

,並想,如果我是我用這裏面的功能:

$(":checkbox").click(function(event){ 
    alert("im here !");     
}); 

,它只是沒有發現,當我點擊複選框。 幫助?

回答

1

如果我已經正確理解了您的問題,您需要綁定click事件,以允許它在原始綁定後添加到DOM的元素上觸發,因爲您要在腳本中插入複選框。

如果你正在使用jQuery 1.7+,使用on

$(someAncestor).on("click", ":checkbox", function() { 
    //Do stuff 
}); 

someAncestor需求是在DOM元素時,上面的代碼執行是要觸發複選框的祖先事件。從你的代碼看起來,這很可能是table元素。

如果您使用的是舊版本的jQuery,請改爲使用delegate方法。

這個工作的原因是DOM事件從它們通過DOM發起的元素冒泡。如果您將事件處理程序綁定到祖先,那麼當事件到達該元素時,該處理程序將被執行。方法ondelegate提供了一種過濾這些事件的方法,以便它們僅在源自某個元素時才被觸發。

+0

太棒了!它現在的作品,現在感謝你, – 2012-02-05 11:42:47

+0

沒問題,很高興我可以幫助:) – 2012-02-05 11:46:28

相關問題