I am trying to start an action everytime anything on the webpage else than specific object is clicked (menu "tree horizontal lines" button with class called "navbutton"), like this:
<div class="test">
<nav id="menu" class="pdng-lr">
<div class="navbutton">
<span class="top"></span>
<span class="middle"></span>
<span class="bottom"></span>
</div>
</nav>
</div>
CSS:
#menu .navbutton
{
display:none;
}
@media screen and (max-device-aspect-ratio: 1/1) and (orientation: portrait)
{
.pdng-lr
{
padding:0px;
}
#menu .navbutton
{
display:block;
width:25px;
height:38px;
margin-top:40px;
margin-left:calc(100% - 40px);
border:none;
cursor:pointer;
}
#menu .navbutton span
{
display:inline-block;
float:left;
min-height:6px;
width:100%;
margin:2px 0px;
background-color:#cccccc;
-webkit-transition:all 0.15s linear;
-moz-transition:all 0.15s linear;
-o-transition:all 0.15s linear;
transition:all 0.15s linear;
}
#menu .navbutton .top
{
margin-top:6px;
}
}
I thought this script could work:
jQuery('div:not(".navbutton")').click(function(){
// just to test if it works
alert();
});
...but it does not: when I click on the .navbutton it still fire up the action anyway (alert window opens up)!
Can anyone tell me what is wrong with the code or how to make it work?
I try to make it as simple as possible on jFiddle but it still doe snot work even like that, see: https://jsfiddle.net/eygka3cn/3/
Your selector is
div:not(.navbutton).<div class="test">triggers theclickevent, since it's adivwithout a.navbuttonclass bound to it. And.testis the parent of.navbutton.You have some options:
.test, in yournotselector.navbuttonto stop propagating the event, as suchComplete code: https://jsfiddle.net/0r2u5x1y/