Javascript jQuery可以';t访问附加元素
我有一个函数:Javascript jQuery可以';t访问附加元素,javascript,jquery,html,append,Javascript,Jquery,Html,Append,我有一个函数: $('#users').append($("<div id='usuarios'>").text(mensaje[1][i])); $(document).ready(function(){ $('#usuarios').click(function() { alert("click"); }); }); 但是它不起作用。您可以内联执行(通过链接.append在.text之后),因为这正是jQuery的API的工作方式,但您也可以将其放入一
$('#users').append($("<div id='usuarios'>").text(mensaje[1][i]));
$(document).ready(function(){
$('#usuarios').click(function() {
alert("click");
});
});
但是它不起作用。您可以内联执行(通过链接.append
在.text
之后),因为这正是jQuery的API的工作方式,但您也可以将其放入一个变量中,这样看起来更好:
var usarios = $("<div id='usuarios'>").text(mensaje[1][i]);
usarios.click(function() {
alert('click');
});
$('#users').append(usarios);
var usarios=$(“”)text(mensaje[1][i]);
usarios.click(函数(){
警报(“点击”);
});
$(“#用户”).append(usarios);
对于jQuery 1.7+,可以使用
或者更好:
$(document).ready(function(){
$('#users').on('click', '#usuarios', function() {
alert("click");
});
});
您正在动态创建元素,因此普通事件处理程序无法工作。您必须使用
on()
将事件处理程序附加到文档中
$(document).on('click', "#usuarios", function() {
// do your job here
});
双向
1.Jquery 1.7+
$(document).ready(function(){
$('body').on('click', '#usuarios', function() {
alert("click");
});
});
2.Jquery我也遇到了这个问题,如果你把它放在document.ready中,它就不会工作了。我以为这是我的语法,但事实并非如此 使用
$(document).on('click', "input[id^='radiobox']", function () {
alert('hihi');
});
然后它工作了@ATOzTOA:通过
$(“#users”)动态添加到DOM中。那是。。。重点是什么?@ATOzTOA:没有。你检查过这是否无效吗?()我使用动态元素已经有一段时间了,而click()
从未使用过动态元素。@ATOzTOA:“动态”元素和“常规”元素之间没有区别,除非它们是添加的。如果您试图在文档中的元素实际存在之前在文档中找到它,那么它当然不会起作用。但是,如果您正在创建元素,您就有了一个引用,可以添加所有您喜欢的事件侦听器。@ATOzTOA在您知道这一点之前,您的生命就处于危险之中?$('body').live('click','#usuarios',function(){})也可以使用,但从jQuery 1.7开始,.live()方法就不推荐使用了。最好是$('users')。on('click'、'#usuarios',function(){
。您希望事件处理程序位于最近的父级上,并且不是动态的(当有大量事件处理程序时,性能会更好)。这就是为什么.live()
已被弃用,因为它将所有处理程序放在文档上
@jfriend00以及其他一些麻烦,例如变魔术、浪费选择器查找等。
$(document).ready(function(){
$('body').delegate('#usuarios','click', function() {
alert("click");
});
});
$(document).on('click', "input[id^='radiobox']", function () {
alert('hihi');
});