我有一个机身点击功能,可以在网站的背景上创建一些很酷的音乐圈。当你点击网站的960px包装器时,我需要点击功能去激活(即不工作) - 否则当你点击菜单等时,链接后面会出现大量的圆圈。
我的所有代码都在以下内容中:
$('body').click(function(e) {
}
我需要停用它的div是#wrapper-container
有什么想法吗?
谢谢:)
答案 0 :(得分:2)
这应该这样做:
$('#wrapper-container').on('click', function(e) {
e.stopPropagation();
}
答案 1 :(得分:2)
使用target.id
从点击事件中排除该特定元素。
尝试,
$('body').click(function(e) {
if(e.target.id != "wrapper-container")
{
}
}
@Json p
提出的情况更新如果用户直接点击#wrapper-container
元素,则第一次检查本身会失败,控制权将超出if statement
。它是一种短路实现。
$('body').click(function(e) {
if(e.target.id !="wrapper-container" &&
$(e.target).parents('#wrapper-container').length == 0)
{
alert('you are out of wrapper.!')
}
});
答案 2 :(得分:2)
您可以使用closest进行检查,这也将照顾#wrapper-container
的任何后代。
$('body').click(function(e) {
if(!$(e.target).closest("#wrapper-container").length){ //check if the element is wrapper-container or any descendant of it if so do nothing.
//Do the stuff for others
}
});
<强> Demo 强>
答案 3 :(得分:0)
<div id='wrapperFoo'>foo</div>
<div id='wrapperBar'>bar</div>
$('#wrapperFoo').on('click', function (e) {
alert('hi');
});
$('#wrapperBar').off('click', function (e) {
alert('hi');
});