我遇到有关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?");
});
我是否遗漏了导致按钮无法点击的内容?干杯〜
答案 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?");
});