通过jQuery将事件添加到新创建的DOM元素

时间:2014-08-06 16:06:36

标签: javascript jquery html css web

我正在尝试将事件分配给新创建的DOM元素:

var Element = document.createElement("div");
$(document).on('click',Element,function() {
    console.log("B");
});

执行此代码并单击新创建的div后,没有任何反应。 知道为什么吗?

我也尝试过:

var Element = document.createElement("div");
$(Element).click(function(event) {
    console.log("B");
});

3 个答案:

答案 0 :(得分:2)

您需要在接收事件之前将元素添加到DOM。

以下是一种方法:

var $div = $('<div>')
  .text('Click Me!')
  .on('click', function() {
    alert('Clicked!');
  });

$(document.body).append($div);

// Now you can click on it and see the alert.

答案 1 :(得分:0)

因为你正在使用jQuery ......

var Element = $("<div/>").click(function() {console.log("B");}).appendTo('body');

当然,将它追加到您需要的地方......

答案 2 :(得分:0)

只需将您的事件绑定在正文上,然后将参数传递给参数,如下所示:

$('body').on('click','.foo',function() {
    console.log("B");
});

var Element = document.createElement("div").className = "foo";

这里是codepen:

http://codepen.io/anon/pen/xvLqo