2012-04-19 28 views
1

我的表中有四列。當我們點擊前三個td中的一個將執行一個操作,當我們點擊最後一個td時,將執行其他類型的操作。 我確實喜歡這個第三個td和最後一個td在Dom變化中不起作用的單獨點擊事件

$('#items_list tr td').not('#items_list tr td:last-child').click(function() { 
    // Do something 
} 

$("#items_list tr td:last-child").click(function() { 
    // Do something 
} 

但是那些在Dom改變時不工作。我嘗試使用.live(),但li的缺點是 鏈接方法不受支持。任何人都可以引導我?

回答

3

沒有必要將事件添加到表上的每個單元格。表tbody級別的一個事件處理程序可以處理它。

jQuery("#foo tbody").on("click", function (evt) { 
    var elem = jQuery(evt.srcElement || evt.target); 
    if (elem.is("td:last-child")) { 
     alert("last child"); 
    } else { 
     alert("not last child"); 
    }  
}); 

如果在td內有元素,您可能需要向elem添加代碼以查找最接近的td。

if (!elem.is("td")) { 
    elem = elem.closest("td"); 
} 

jsFiddle

+0

我使用jQuery 1.6.4所以。對不工作的權利在DOM換個工作? – vinothini 2012-04-19 18:19:09

+0

正確,因爲1.6.4沒有'on'。只需將'on'改爲'bind'或者只需使用'click(function {...})'。 – epascarello 2012-04-19 18:23:04

+0

點擊將正常表(靜態表)的工作,但我想這也是爲了改變DOM(通過Ajax調用我介紹表中的頁面)。我會嘗試綁定.... – vinothini 2012-04-19 18:31:32

0
$("#items_list tr td").last().click(function(){ }); 
+0

這將在正常的工作表中,但我想 – vinothini 2012-04-19 18:11:19

相關問題