我已经在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
});
});
在document.ready()
上绑定它时效果很好但在我的情况下,在DOM准备好之后创建的按钮。
我也想知道它为什么会这样......?
答案 0 :(得分: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]');
将文档替换为最近的非动态元素,用于委托事件处理程序。