在某些情况下 .on() 事件方法不会触发,但 .live() 会触发。
但是,从 jQuery 1.7 开始,不推荐使用 .live() 方法。
所以最好使用 .on() 方法来附加事件处理程序。
所以这里是问题 - http://jsfiddle.net/rGRdT/2/
您可以看到当您单击按钮时调用了一次 .one() 方法,但是当您单击刚刚创建的第二个按钮时, .on() 不会被调用。
$('#button2').on('click', function() {
$('div').append('<input type="button" value="add2" id="button3" />');
});
你可以在这里看到 - http://jsfiddle.net/GFCt9/
当你点击第二个按钮时, .live() 方法被完美地调用了。
$('#button2').live('click', function() {
$('div').append('<input type="button" value="add2" id="button3" />');
});
那么我怎样才能使用 .on() 方法,让它像上面示例中的 .live() 方法一样工作呢?