javascript - jQuery on() 不触发动态元素

标签 javascript jquery

为什么在将元素添加到列表后不调用此点击处理程序?

<div id="a">
    <a href="#" class="a1">Test</a>
</div>

<div id="b">
    <div class="b1">
        <ul id="list">
            <li>
                <a href="#" class="b2">Test</a>
            </li>
        </ul>    
    </div>
</div>

<button id="btn">Add One</button>

这是JS:

$(document).ready(function(){
    $('#a').on('click', '> .a1', function(){ alert('works')})
    $('#b').on('click', '> .b1 > ul > li > .b2', function(){ alert('works')})

    $('#btn').click(function(){
        $('#list').append('<a href="#" class="b2">Test Added</a>')
    })
})

fiddle :http://jsfiddle.net/eV4rX/

最佳答案

它需要包裹在 <li> 中:

$('#list').append('<li><a href="#" class="b2">Test Added</a></li>')

更新 fiddle :http://jsfiddle.net/eV4rX/1/

关于javascript - jQuery on() 不触发动态元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24893344/

相关文章:

javascript - 按键事件 keyCode 适用于空格键,但不适用于字母 F

javascript - 如何为兄弟文件夹中的文件写入路径?

javascript - 按每个季度的第一天划分日期

javascript - 如何在具有多个选择的表单中使用 jquery 设置选定的下拉选项?

javascript - Ajax 调用后,电子邮件被发送多次

javascript - 如何将 jQuery 选择对象传递到选择所调用的函数中?

javascript - 试图计算圆上两点之间的 Angular ?

javascript - 未捕获的类型错误 : Cannot call method 'toLowerCase' of undefined using Ckeditor

javascript - 用于显示/隐藏元素的 JQuery 过滤器复选框

jquery - 在同位素(砖石)网格中使用带有背景图像的 Slick Carousel - 幻灯片高度变为 1px