Jquery .not()基于子元素

时间:2014-05-14 13:28:02

标签: jquery html onclick

http://jsfiddle.net/L7axv/

我在一个专门用于评论的表格中有一列。我需要在单击单元格时出现弹出窗口,允许用户添加注释。单元格内部将是现有注释和删除它们的方法。当您单击以删除注释时,您不应该看到弹出窗口。

我试过了:

$("td").not('div').click(function(){
    $('#popup').show();
});   //was hoping this would mean if td is clicked, and clicked area is not a div


$("div").click(function(){
    $(this).hide();
});

3 个答案:

答案 0 :(得分:2)

您可以在div上使用 e.stopPropagation() 来阻止.click()事件冒泡DOM树:

$("div").click(function(e){
    e.stopPropagation();
    $(this).hide();
});

<强> Updated Fiddle

答案 1 :(得分:0)

你可以这样做

$("td").click(function(e){
    if( !$(e.target).is('div') ) {
        $('#popup').show();
    } else {
        $(e.target).hide();
    }
});

http://jsfiddle.net/L7axv/4/

如果点击的元素不是div,则显示弹出窗口。您实际上可以使用此

删除div单击处理程序

答案 2 :(得分:0)

您可以使用分层选择器添加事件以单击列 由jQuery提供。

$('#table td:eq(index)').click(function(){
 $('#popup').show();
});

PS:index是一个数字,具体取决于您想要点击的关联。