情景1:
$(function () {
$('#disp_body').on('change', '#image', showMyImage(this));
});
如果我直接调用函数showMyImage
,它会调用页面加载本身。
情景2:
但是如果我通过闭包函数来调用。该事件得到了适当的倾听和处理。所以它运作正常。
$(function () {
$('#disp_body').on('change', '#image', function() {
showMyImage(this);
});
});
我想知道为什么方案1不起作用但方案2。
答案 0 :(得分:1)
这个答案是相关的:https://stackoverflow.com/a/7102440/7316502
在第1种情况下,您正在调用一个函数,并将其返回值作为回调传递给更改侦听器。这导致过早执行showMyImage
。
在第二种情况下,您传递的函数用作回调,但您不是直接调用它。这允许更改侦听器调用它并根据需要在change事件上调用showMyImage
。