javascript - prevent event on target and it's parent -
i have code use remove classname "joker" every element has classname: http://jsfiddle.net/ffz30knn/1/
is possible (with vanilla js only) prevent event on target element , it's parent, when click <span class="joker">one</span> inside <div class="joker"></div> remove "joker" class other elements has class not span element , it's wrapping div?
thanks.
here current code:
function removeclass(classtoremove) { var elems = document.getelementsbyclassname(classtoremove); console.log(elems.length); if (!elems) return; (var = elems.length - 1; >= 0; i--) { var elem = elems[i]; elem.classname = elem.classname.replace(/(?:^|\s)joker(?!\s)/g, ''); } } window.onload = function() { document.onclick = function() { removeclass("joker"); }; }; div { background: silver; padding: 3px 8px; margin: 5px; } span { background: blue; padding: 3px 8px; color: white; } .joker { background: black; color: red; } <div class="one 2 3 joker"><span class="joker">one</span> </div> <div class="one 2 three"><span>two</span> </div> <div class="one 2 3 joker"><span class="joker">three</span> </div> <div class="one 2 three"><span>four</span> </div>
if understand want delete class joker every element 1 clicked?
in removeclass function can check if same element
function removeclass(classtoremove) { var elems = document.getelementsbyclassname(classtoremove); console.log(elems.length); if (!elems) return; (var = elems.length - 1; >= 0; i--) { var elem = elems[i]; if(elem != this) elem.classname = elem.classname.replace(/(?:^|\s)joker(?!\s)/g, ''); } } and guess can check parent element doing element.parentelement, give you:
if(elem != && elem != this.parentelement)
Comments
Post a Comment