动态创建DOM后,jQuery .on()方法无效

时间:2015-12-18 05:29:18

标签: javascript jquery html dom

我按了一个按钮

var sectionbtn = document.createElement("button");
sectionbtn.className = "sections";

然后就在下面,我有

$(document).on('click', '.sections', function() {
        console.log("clicked");
    });

但没有发生任何事情。

我试过了

$(mainbody).on('click', '.sections', function() {
        console.log("clicked");
    });

其中mainbody是.sections按钮的父级。

我知道还有其他问题,但我尝试了很多不同的东西,似乎无法使其发挥作用。这有什么问题?

1 个答案:

答案 0 :(得分:1)

我的编码方式不同。由于你已经在使用jQuery,我会使用它的工具,如下所示:

$('body')
  .append(
    $('<button>')
      .addClass('sections')
      .html('Click me')
  );
$('body').on('click', 'button.sections', function() {
    alert('clicked');
});

这是一个jsfiddle:

https://jsfiddle.net/mckinleymedia/7kLLqrgp/2/

我将点击处理器分开,以便您可以处理多个部分。