我在加载页面时存在div。我添加了一个按钮,另一个按钮。然后我想点击按钮并添加内容。
到目前为止,第一部分正在运行,但我无法附加到动态创建的任何元素。
$(document).ready(function () {
// THIS WORKS
$("#Value").change(function () {
var value = $("#Value").val();
$("#Question_Field").empty();
for (var i = 1; i <= value; i++) {
$("#Question_Field").append('<input type="button" id="button" /><div id="test"></div>');
}
});
// THIS DOES NOT WORK
$("#test").click(function () {
console.log("Click");
("#test").append(STUFF);
});
});
它甚至没有记录点击。
答案 0 :(得分:1)
有两个主要问题。
当您挂钩事件时,尚未存在#test
元素,因此无法连接任何内容。
您正在使用相同的id
创建多个元素。
此外,您的append
来电在开始时缺少$
。
您可以修复第一个使用事件委派(此代码也修复了append
):
$(document).on('click', '#test', function () {
console.log("Click");
$("#test").append(STUFF);
});
告诉jQuery在click
上挂钩document
事件,但只有在事件源于或传递给匹配给定选择器(#test
)的元素时才触发处理程序,因为它冒泡到文件。
要解决第二个问题,即具有相同id
的多个元素,您需要更改输出元素的循环。您可能希望使用类而不是id
。
答案 1 :(得分:0)
click
只能处理调用时存在的元素。您应该检查.live()
http://api.jquery.com/live/或.on()
http://api.jquery.com/on/,具体取决于您的jQuery版本。