2013-04-08 33 views
0

我有一個包含多個表的div。每個表都有一個刪除按鈕,用於調用刪除表的功能。表格也可以按日期升序/降序排序。刪除功能將起作用,但如果表已被排序,則不會。如何在排序後在文檔上運行函數? JQuery

JSFiddle Demo Here

刪除按鈕看起來是這樣的。

<button id="6" class="delete">X</button> 

該函數具有'delete'類的click事件偵聽器。我目前只使用alert來顯示id以進行調試。

$(".delete").click(function() { 
    alert($(this).attr("id")); 
}); 

我懷疑它不排序後工作的原因是因爲它使用$(this)選擇獲取ID屬性,這是不是排序後不夠具體。

我已經嘗試過各種方法將表ID傳遞給刪除功能,但沒有任何工作。

回答

3

排序,當你reappending的內容,使.delete元素是動態的,因此您需要一個委託事件處理程序:

$("#meetingTable").on('click', ".delete", function() { 
    alert(this.id); 
}); 

FIDDLE

-1

嘗試改變

$(".delete").click(function() { 

$(".delete").on("click", function(){ 

這將讓jQuery來聽出來,即使DOM操作後,該元素的點擊

+0

不,它不會? – adeneo 2013-04-08 15:45:07

+0

這兩個陳述在邏輯上是等價的。 – 2013-04-08 15:45:10

+0

我的意思是'.live(「click」,function()'? – Bill 2013-04-08 15:46:21

0

此行

sortUsingNestedText($('#meetingTable'), "table", $(this).data("sortKey")); 

我測試了它的工作原理之後將額外的副本或回調到您的刪除功能的按鈕排序函數內。

相關問題