Как исключить определенный div из события jquery .click - PullRequest
0 голосов
/ 12 мая 2018

Я хочу исключить оповещение, когда я нажимаю foo , но оно все равно предупреждает, когда я нажимаю в любом месте на теле, включая foo. нижеприведенный Jquery не работает должным образом.

$("body:not(.foo)").click(function(){   alert("clicked body");    });

$("body:not(.foo)").click(function()
{
	alert("clicked body");
});
body {  background: #e8e6e4;  padding: 20px;  font-family: Helvetica;border:2px solid;}
.foo{  color:#ffffff;  background:red;}
button {  background: #0084ff;  border: none;  border-radius: 5px;
  padding: 8px 14px;  font-size: 15px;  color: #fff;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<body>
<div>
  <p>Hello World</p><button>Change color</button>
</div>
<br><br><br><br><br><br>
<div class="foo">FOOOO</div>
</body>

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

Вот как бы я это сделал:

$(document).on('click', function()
{
    if (!$(this).hasClass('foo')) {
        //do something
    } 
}) ;
0 голосов
/ 12 мая 2018

Вы можете просто вернуть false при нажатии на .foo div. см. Демонстрацию

$('div.foo').on('click', function() {
  return false;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...