我在点击的列表项上有一个addEventListener。如果单击列表项中的链接,我想阻止此addEventListener。
http://jsfiddle.net/8xea1eku/ - 所以在这个例子中。如果this
是点击链接,我想阻止切换操作。我怎么能这样做?
<div class="faq">
<ul>
<li>
asdasdasdasdaa
<span class="answer">
<a href="http://google.com">clickme</a> jdiajdoi asjdoiaj sdoiaj odsjaso djaosdj oaisjdo.
</span>
</li>
<li>
asdasd
<span class="answer">
sadoia hdoas jdiajdoi asjdoiaj sdoiaj odsjaso djaosdj oaisjdo
</span>
</li>
<li>
asdasdasdasd
<span class="answer">
sadoia hdoas jdiajdoi asjdoiaj sdoiaj odsjaso djaosdj oaisjdo
</span>
</li>
</ul>
</div>
if (document.getElementsByClassName('faq').length > 0) {
var faqItems = document.querySelectorAll('.faq li');
for (var i = 0; i < faqItems.length; i++) {
faqItems[i].addEventListener('click', function () {
this.classList.toggle("active");
});
}
}
答案 0 :(得分:1)
使用事件对象查看点击的内容。
faqItems[i].addEventListener('click', function (e) {
if (e.target.nodeName==="A") return;
this.classList.toggle("active");
});