单击li上的addEventListener - 如果单击li中的链接,则阻止此操作

时间:2015-07-30 17:18:25

标签: javascript

我在点击的列表项上有一个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");
        });

    }

}

1 个答案:

答案 0 :(得分:1)

使用事件对象查看点击的内容。

    faqItems[i].addEventListener('click', function (e) {
        if (e.target.nodeName==="A") return;
        this.classList.toggle("active");
    });