单击事件不会使用动态创建按钮触发

Tal*_*lha 0 javascript jquery

我已经在div中动态创建了按钮.并为按钮绑定点击和其他事件.但问题是,click事件仅针对首次单击按钮触发了一个.对于其他绑定事件,它也是一样的.示例代码是

 $('#divButtons input[type=button]').each(function () {
     $(this).bind('mouseover', function (e) {
         // some work
     }).bind('mouseout', function (e) {
         // some work
     }).bind('click', function (e) {
         // some work
     });
 });
Run Code Online (Sandbox Code Playgroud)

绑定它时效果很好document.ready()但是在我的情况下,在DOM准备好之后创建的按钮.

我也想知道它为什么会这样......?

ade*_*neo 5

如果使用jQuery 1.7+转到on(),并且真的不需要每个():

$(document).on({
    mouseover: function(e) {
            // some work
    },
    mouseout: function(e) {
           // some work
    },
    click: function(e) {
           // some work
    }
}, '#divButtons input[type=button]');
Run Code Online (Sandbox Code Playgroud)

对于委托事件处理程序,用最近的非动态元素替换文档.