【问题标题】:jquery, click on current li onlyjquery,仅单击当前 li
【发布时间】:2018-05-24 07:32:04
【问题描述】:

一旦点击它,我想将一个 ul 元素附加到一个 li 元素。

我的 html 如下:

<ul>
    <li>list 1</li>
    <li>list 2</li>
    <li>list 3
        <ul>
            <li>list 31</li>
            <li>list 32</li>
            <li>list 33</li>
        </ul>
    </li>
    <li>list 4</li>
    <li>list 5</li>
</ul>

还有我的javascript:

$('ul').on('click', 'li', function (){
    $(this).append(
        '<ul>'+
            '<li>list a</li>'+
            '<li>list b</li>'+
            '<li>list c</li>'+
        '</ul>'
    )
});

我的问题是当我单击一个 li 而不是将元素附加到当前 li 时,它会将其附加到同一范围内的所有 li。

jsfiddle:https://jsfiddle.net/malamine_kebe/Lneyn80w/

【问题讨论】:

    标签: javascript jquery list onclick append


    【解决方案1】:

    您必须停止在 DOM 树中冒泡的事件,

    $(document).ready(function(e) {
      $('ul').on('click', 'li', function(e) {
        e.stopPropagation();
        $(this).append(
          '<ul>' +
          '<li>list a</li>' +
          '<li>list b</li>' +
          '<li>list c</li>' +
          '</ul>'
        );
      });
    });
    

    DEMO

    【讨论】:

    • 谢谢,不过是小问题,在你的 jsfiddle 中,当点击 list31 或 list32 或 list33 时,新列表发生了 2 次​​span>
    • @woshitom 你能检查更新的演示吗? jsfiddle.net/Lneyn80w/3
    • 工作完美,非常感谢,将尽快验证您的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 2013-09-23
    • 2017-09-22
    • 2016-09-15
    相关资源
    最近更新 更多