Jquery无法识别单击的按钮

时间:2016-06-08 14:31:19

标签: javascript jquery html

我遇到有关click()方法的jquery问题。我有以下代码:

text += "<input type='button' id='create_setup_button' value='Add SetUp' />";
text += "<input type='button' id='create_teardown_button' value='Add Teardown' />";
text += "<input type='button' id='create_event_button' value='Create Event' />";

$("#create_setup_button").click(function () {
    alert("what is good?");
});

我是否遗漏了导致按钮无法点击的内容?干杯〜

3 个答案:

答案 0 :(得分:2)

这显然不是你的全部代码。文本变量会发生什么?什么时候进入dom?

如果您的点击处理程序在将文本放入dom之前出现,那么它将无效,因为您单击处理程序无法在执行时找到该元素。

如果您使用:

$('body').on('click', '#create_setup_button', function () {
    alert("what is good?");
});

它应该有效,因为你在主体上有一个事件委托,它将捕获与#create_setup_button选择器匹配的元素上的所有冒泡点击事件。

答案 1 :(得分:2)

由于您的按钮是使用js代码动态添加的,因此您应该使用事件委派 on 来处理新的DOM:

$("body").on('click','#create_setup_button', function () {
    alert("what is good?");
});

希望这有帮助。

答案 2 :(得分:0)

目标是动态创建的。

您需要将事件委托给目标

$("body").on('click', '#create_setup_button',function (event) {
            alert("what is good?");
        });

jsfiddle