javascript - Add event listener to all objects except for a few selected? -


i'm trying add event listener objects except few selected(the selected have arbitrary child elements in arbitrary levels)?

i have asked question before, didn't got answer it. have came close solve it. please me debugging it?

i'm adding event listener body element called bodylistener , event listener few selected elements called selectedelementsmarktrue. few selected elements don't want execute code, listener selectedelementsmarktrue performs pior bodylistener settimeout function. selectedelementsmarktrueset variable selectedelements true , bodylistenerchecks if selectedelementsis truebefore execute som code. there still wrong code

    var selectedelements = false;     var bodylistener = function(){         window.settimeout(function(){//setting timeout other handler, selectedelementsmarktrue, performs first             (function(){                 if(selectedelements == false){                     //do stuff                 }else{                     selectedelements = false;                 }             });         }, 10);//could 0, te sure set 10     };     var selectedelementsmarktrue = function(){         selectedelements = true;     };     $('#dontaddeventlistener1, #dontaddeventlistener2').each(function(){         this.addeventlistener('click', selectedelementsmarktrue, false);     });     document.body.addeventlistener('click', bodylistener, false); 

i can't settimeout function execute underlying code?

sounds want behavior this:

<!doctype html> <html>     <head>         <meta charset="utf-8">         <title></title>         <script>             window.addeventlistener("domcontentloaded", function() {                 document.body.addeventlistener("click", function(e) {                     var el = e.target;                     {                         if (el.hasattribute && el.hasattribute("data-nofire")) {                             return;                         }                     } while (el = el.parentnode);                     alert('do stuff');                 }, true);             }, false);         </script>     </head>     <body>         <p><span>click me</span></p>         <p data-nofire><span>click me</span></p>         <p data-nofire>click me</p>         <p>click me</p>     </body> </html> 

or, naren suggested:

<!doctype html> <html>     <head>         <meta charset="utf-8">         <title></title>         <script>             window.addeventlistener("domcontentloaded", function() {                 var nofire = document.getelementsbyclassname("nofire");                 (var = 0; < nofire.length; ++i) {                     nofire[i].addeventlistener("click", function(e) {                         e.stoppropagation();                     }, true);                 }                 document.body.addeventlistener("click", function(e) {                     alert('do stuff');                 }, false);             }, false);         </script>     </head>     <body>         <p><span>click me</span></p>         <p class="nofire"><span>click me</span></p>         <p class="nofire">click me</p>         <p>click me</p>     </body> </html> 

Comments

Popular posts from this blog

php - What is the difference between $_SERVER['PATH_INFO'] and $_SERVER['ORIG_PATH_INFO']? -

fortran - Function return type mismatch -

queue - mq_receive: message too long -