前三个td和最后一个td的单独点击事件在Dom更改中不起作用

时间:2012-04-19 18:02:13

标签: javascript jquery

我的桌子上有四列。当我们单击前三个td中的一个将执行一个操作时以及当我们单击最后一个td时将执行其他操作。 我确实喜欢这个

$('#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的缺点是 不支持链接方法。任何人都可以指导我吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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