以下是代码:
window.onload = function() {
oldonload && oldonload();
function test() {
alert("meh");
}
$('input[type=file]').change(test());
}
代码非常简单,只有在test()
更改时才会调用input[type=file]
。但是,只要我的网页已加载,就会调用test()
。
这里发生了什么?只有当用户与输入元素交互时,我才会如何执行该功能?
答案 0 :(得分:6)
您正在此行上调用方法:
$('input[type=file]').change(test());
将其更改为:
$('input[type=file]').change(test);
如果要将参数传递给test
:
var myVar = 5;
$('input[type=file]').change(function () {
test(myVar);
});
答案 1 :(得分:2)
只需像这样更改文件更改事件:
$('input[type=file]').change(function() { test() });
答案 2 :(得分:2)
您正在执行immedietaly函数而不是分配处理程序。你应该这样做:
$('input[type=file]').change(test);
答案 3 :(得分:1)
change将函数作为参数,因此您只需要提供要调用的函数名称。
<scope>provided</scope>