jQuery not()函数似乎不适合我

时间:2011-04-28 09:08:41

标签: jquery

我正在设计一个类似于Gmail的电子邮件系统,当用户点击邮件时,它会将他带到该邮件的页面。用户还可以单击此链接左侧的复选框,还可以单击用于为消息加注星标/取消星标的按钮。我不想点击复选框或星形图标将用户带到消息中。

我该怎么做?我尝试使用jQuery not()函数来排除这些,但是A)它似乎不适用于多个选择器,并且B)如果我将复选框和星形图标组合到它们自己的div中并且只调用not()在单个内部div上运行,它仍然不起作用。 not()函数有什么问题或我在某种程度上做错了吗?有关如何做到这一点的任何建议???

$('div.messages_list').click(function(){
    var messageid = $(this).attr('messageid');
    $.ajax({
    type: "POST",
        url: "./ajax.message_go.php",
        data: "id=" + messageid,
        success: function(data){
            window.location.href = data;
        },
        error: function(){
        }
    });
});    

3 个答案:

答案 0 :(得分:0)

您可以为星标和复选框单独设置点击事件处理程序,并在其中调用event.stopPropagation,以免导致邮件点击。

$(".star").click(function(event){
   event.stopPropagation();
});

当然,如果星号和复选框是消息框的子项。

答案 1 :(得分:0)

您可以使用$ .filter()

$('div.messages_list').filter("a").click()

答案 2 :(得分:0)

我陷入了与此类似的局面。所以我做的是,它可能很奇怪但是,当点击发生在星号和复选框上时,我添加了一个div来“禁用 - 点击”。使用此代码只需添加此代码段

if(!$(this).hasClass('disable-click')) 
{ --perform ur action-- }

  This will solve your problem I belive..

“用你的梦想激发你的激情。”