之间的技术区别是什么:

$('#myid').keypress(function(e)
{
    if(e.which == 13) {
        alert('test');
    }
});


和这个:

$(document).on('keypress', '#myid', function(e) {
{
    if(e.which == 13) {
        alert('test');
    }
});


我有一个jQuery脚本,可以在第二个示例中运行,但不能在第一个示例中运行

最佳答案

他们正在使用两个完全不同的事件。第一个使用keypress事件:

$('#myid').keypress(function(e)


而第二个使用click事件:

$(document).on('click', '#myid', function(e) {


除此之外,第一个直接绑定到#myid元素,而第二个直接绑定到document并基于#myid选择器过滤事件。观察到的这两种结合的效果可能是相同的,但是它们以非常不同的方式实现了该效果。




  我有一个Jquery脚本与第二个示例一起运行,但不与第一个示例一起运行


这是非常不可能的,因为click事件的.which属性不等于13。虽然这取决于您所说的“运行”的意思。您可能正在观察的东西与您所描述的完全不同。例如,这两种绑定类型之间的主要区别是第二种绑定类型用于捕获来自动态添加的DOM元素的事件。因此,如果您尝试对通过AJAX加载的DOM元素使用第一个示例,那么在附加事件处理程序时它将找不到这些元素。

10-05 20:50
查看更多