点击事件无法循环播放

时间:2018-07-06 20:22:52

标签: javascript jquery html

我基本上有类似的东西。我要在循环中添加按钮,但是当我单击按钮时不起作用。

    for(i = 0; i < 3; i++) {
        $("#add").append(
         '<button class ="addx"> Add </button>'
        )
    }

    $(".addx").click(function(){
    	alert("ADDED");
    };
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="add"></div>

3 个答案:

答案 0 :(得分:5)

在脚本末尾缺少);来关闭click方法。

for(i = 0; i < 3; i++) {
    $("#add").append(
     '<button class ="addx"> Add </button>'
    )
}

$(".addx").click(function(){
    alert("ADDED");
}); // here

答案 1 :(得分:2)

对于动态创建的元素,您将需要重组事件侦听器:

$(document).on('click', '.addx', function(){
        alert("ADDED");
    });

大量评论最终得出结论,旧版本的IE确实支持.click,并且批准的答案是正确的。

此处列出的侦听器用于异步javascript,其中在事件侦听器被声明之后(例如在回调方法之类中)添加了附加元素。

特别感谢Taplar在我们在测试环境中进行设置的过程中忍受了我的精神错乱。这是个麻烦,但最后塔普拉(Taplar)以及其他所有人都认为这是一个选择是绝对正确的,但不是对这个特定问题的明确答案。

答案 2 :(得分:0)

此代码有效。

    for(i = 0; i < 3; i++) {
        $("#add").append(
         '<button class ="addx"> Add </button>'
        )
    }

    $(".addx").click(function(){
    	alert("ADDED");
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="add"></div>