Я хочу исключить оповещение, когда я нажимаю 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>
Вот как бы я это сделал:
$(document).on('click', function() { if (!$(this).hasClass('foo')) { //do something } }) ;
Вы можете просто вернуть false при нажатии на .foo div. см. Демонстрацию
.foo
$('div.foo').on('click', function() { return false; });