I have a dynamically appended menu which I am removing if you click anywhere on page including the menu links itself. What I am trying to achieve is to prevent the remove if you click a specific link and that simply does not work for me. Unfortunately I cant use the delegate method, if that would help, due to old version on jquery used on client side, no option to update it.
So maybe you could suggest if there is any way to do so. Here is a quick example of mine.
<script> $(function() { $('.menu').append('<a href="" class="solid">Option</a> <a href="">Option</a> <a href="">Option</a>'); $('.menu a').live('click',function(){ return false; }); $('a.solid').live('click',function(){ return false; }); $('html').click(function() { $('.menu').remove(); }); }); </script>
and the container
<div class="menu"></div>
$(document). click(function (event) { $('#myDIV:visible'). hide(); });
To detect click outside element with JavaScript, we can use the element's contains method. const specifiedElement = document. getElementById("a"); document. addEventListener("click", (event) => { const isClickInside = specifiedElement.
Maybe it will work like this
$('html').click(function(e) { if(!$(e.target).hasClass('solid') ) { $('.menu').remove(); } });
see: http://jsfiddle.net/fq86U/2/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With