在特定div内部时停用jquery click功能

时间:2013-12-10 16:28:17

标签: jquery onclick

我有一个机身点击功能,可以在网站的背景上创建一些很酷的音乐圈。当你点击网站的960px包装器时,我需要点击功能去激活(即不工作) - 否则当你点击菜单等时,链接后面会出现大量的圆圈。

我的所有代码都在以下内容中:

$('body').click(function(e) {

}

我需要停用它的div是#wrapper-container

有什么想法吗?

谢谢:)

4 个答案:

答案 0 :(得分:2)

这应该这样做:

$('#wrapper-container').on('click', function(e) {
    e.stopPropagation();
}

答案 1 :(得分:2)

使用target.id从点击事件中排除该特定元素。

尝试,

$('body').click(function(e) {   
   if(e.target.id != "wrapper-container")
      {

      }
 }

DEMO


@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.!')
      }
 });

Updated DEMO

答案 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');
});

FIDDLE