jQuery无法访问append元素

时间:2013-01-08 03:43:23

标签: javascript jquery html append

我在函数中有这个:

$('#users').append($("<div id='usuarios'>").text(mensaje[1][i]));

我想为这个新的<div>创建一个onclick事件。我怎样才能做到这一点? 我在功能之外尝试这样做:

$(document).ready(function(){
$('#usuarios').click(function() {
        alert("click");
    });
});

但它不起作用。

5 个答案:

答案 0 :(得分:7)

对于jQuery 1.7+,您可以使用.on()

将事件处理程序附加到父元素
$(document).ready(function(){
  $('body').on('click', '#usuarios', function() {
     alert("click");
  });
});

或更好:

$(document).ready(function(){
  $('#users').on('click', '#usuarios', function() {
     alert("click");
  });
});

答案 1 :(得分:5)

你可以内联(通过在.append之后链接.text),因为这就是jQuery API的工作方式,但你也可以把它放在一个看起来更好的变量中:

var usarios = $("<div id='usuarios'>").text(mensaje[1][i]);

usarios.click(function() {
    alert('click');
});

$('#users').append(usarios);

答案 2 :(得分:3)

我也遇到过这个问题,如果你把它放在文件中,那么它就行不通了。我认为这是我的语法,但事实并非如此。

使用

$(document).on('click', "input[id^='radiobox']", function () { 
    alert('hihi'); 
});

然后它起作用

答案 3 :(得分:1)

两种方式

1.Jquery 1.7 +

$(document).ready(function(){
  $('body').on('click', '#usuarios', function() {
     alert("click");
  });
});

2.Jquery&LT; 1.7

$(document).ready(function(){
  $('body').delegate('#usuarios','click', function() {
     alert("click");
  });
});

答案 4 :(得分:0)

您正在动态创建元素,因此普通事件处理程序将无法正常工作。您必须使用on()将事件处理程序附加到您的文档。

$(document).on('click', "#usuarios", function() {
    // do your job here
});