在我正在构建的 JQM (1.3.0) 应用程序中,我使用“on”将所有提交按钮绑定(bind)到单击事件,目的是现在和将来的所有提交按钮都将绑定(bind)此事件。我在 $(document).ready() 中进行这些绑定(bind),因为我认为它只需要被调用一次......永远。
我更新了 JQM panel一些内容并对该内容调用 .trigger('create') 。 应该发生的是,新创建的提交按钮在被点击时应该触发绑定(bind)的点击事件,但事实并非如此。
这是一个fiddle展示我想要实现的目标。在演示中,每当您单击提交按钮时,消息框都应显示“Clicked”...不幸的是,这只发生在第一个元素上。
$(function(){
$('input[type="submit"]').on('click', function(e){
$('#msg').append('<div>Clicked</div>');
$('#panel').html('<input type="submit" value="New Button">').trigger('create');
});
});
我在这里使用 .on() 是否不正确?我想我可以将所有绑定(bind)填充到一个函数中,然后在调用 .trigger('create') 时调用该函数...但这似乎效率低下。
最佳答案
你需要
$('#someParentElement').on('click', 'input[type="submit"]', function(e){
//handler
});
你的方式与旧的方式相同
$('input[type="submit"]').bind('click', function(e){
//handler
});
关于jquery - .on() 绑定(bind)在触发后不起作用 ('create' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14886992/