Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery可以';t访问附加元素_Javascript_Jquery_Html_Append - Fatal编程技术网

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'); 
});