委派事件 onchange 在页面加载时立即触发
Delegation event onchange triggers immediately on page load
场景一:
$(function () {
$('#disp_body').on('change', '#image', showMyImage(this));
});
如果我直接调用函数 showMyImage
,它会调用页面加载本身。
场景二:
但是如果我通过闭包函数调用。该事件得到妥善收听和处理。所以它工作正常。
$(function () {
$('#disp_body').on('change', '#image', function() {
showMyImage(this);
});
});
我真的很想知道为什么方案 1 不起作用,但方案 2 不起作用。
这个答案是相关的:
在情况 1 中,您正在调用一个函数,并将其 return 值作为回调传递给更改侦听器。这导致 showMyImage
.
过早执行
在第二种情况下,您正在传递一个用作回调的函数,但您没有直接调用它。这允许更改侦听器调用它并根据需要在更改事件上调用 showMyImage
。
场景一:
$(function () {
$('#disp_body').on('change', '#image', showMyImage(this));
});
如果我直接调用函数 showMyImage
,它会调用页面加载本身。
场景二:
但是如果我通过闭包函数调用。该事件得到妥善收听和处理。所以它工作正常。
$(function () {
$('#disp_body').on('change', '#image', function() {
showMyImage(this);
});
});
我真的很想知道为什么方案 1 不起作用,但方案 2 不起作用。
这个答案是相关的:
在情况 1 中,您正在调用一个函数,并将其 return 值作为回调传递给更改侦听器。这导致 showMyImage
.
在第二种情况下,您正在传递一个用作回调的函数,但您没有直接调用它。这允许更改侦听器调用它并根据需要在更改事件上调用 showMyImage
。