为什么这在 jQuery 中有效:
$('#selCars').change(function(){
alert( "I have changed!" );
})
但不是这个:
$('#selCars').change(alert( "I have changed!" ) );
最佳答案
您将函数引用传递给.change()
。您的第二个示例只有代码,而不是函数引用。
您的第一个示例之所以有效,是因为它传递了所需的函数引用。
需要函数引用,因为这是稍后将调用的回调。立即执行的 .change() 函数需要将回调引用保存到它自己的变量中,然后在更改事件实际发生时调用它。为此,它需要一个稍后调用的函数,而不是一段原始代码。
并且,另一个答案是因为 .change()
被编写为需要函数引用。这就是规范和编写它的开发人员的设计方式。如果你想让它发挥作用,你就必须遵守他们的规则。
关于javascript - 为什么 jQuery 的 .change() 需要包装成函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7736244/