我正在设计一个类似于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(){
}
});
});
答案 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..
“用你的梦想激发你的激情。”