javascript - 为什么我的 JS 函数执行的是 onload 而不是 onchange?

标签 javascript jquery input jquery-events

代码如下:

window.onload = function() {
    oldonload && oldonload();

    function test() {
        alert("meh");
    }    

    $('input[type=file]').change(test());
}

代码相当简单,test() 仅在 input[type=file] 更改时调用。但是,只要我的页面加载,就会调用 test()

这是怎么回事?如何仅在用户与输入元素交互时才执行函数?

最佳答案

您正在这一行调用该方法:

$('input[type=file]').change(test());

将其更改为:

$('input[type=file]').change(test);

如果你想传递一个参数给test:

var myVar = 5;
$('input[type=file]').change(function () {
   test(myVar); 
});

关于javascript - 为什么我的 JS 函数执行的是 onload 而不是 onchange?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37154358/

相关文章:

javascript - 重复无效的用户输入,直到其有效(伪)

javascript - 无法确定字符串是否包含在我的 Angular 2 中的 Json 键中

javascript - VueJs 如何使用限制器和范围进行分页..?

java - 将值从 javascript 传递到 JavaFX

javascript - 变量输出不一致

javascript - 上传时显示加载图像?

java - 好奇为什么这个递归代码不起作用,并且在另一种方法中表现出非常相似的行为

java - 我如何让我的 Java 扫描仪从该文件中读取这些字符串?

javascript - 查找元素并替换它

javascript - 我可以在幽灵博客条目中使用嵌入式 Javascript 吗?