更改时的jQuery文件输入未触发
Posted
技术标签:
【中文标题】更改时的jQuery文件输入未触发【英文标题】:jQuery file input on change not triggering 【发布时间】:2016-04-25 05:04:35 【问题描述】:我绑定了两个单独的事件进行测试,但无论出于何种原因,当我选择一个文件时,它们都没有触发。我确定我今天只是没有喝足够的咖啡,但这似乎是检测文件选择的正确方法。
html:
<input type="file" id="files">
JS:
$(document).on("ready", function()
$("#files").on("change", function()
alert("Files changed.");
);
$(document).on("change", "#files", function()
alert("Files changed.");
);
);
示例:https://jsfiddle.net/snoapps/66y45hjh/
【问题讨论】:
【参考方案1】:https://jsfiddle.net/66y45hjh/2/
您的第二个函数是正确的,但函数嵌套的方式不会让它按照您想要的方式执行。看看我对你的小提琴所做的编辑。
我使用的javascript代码如下。
$(function()
$(document).on("change", "#files", function()
alert("Files changed.");
);
);
【讨论】:
你能解释一下否决票吗?代码按预期工作。 这行得通,使用 $(function() ); 有什么意义?在脚本中? (附:我不知道谁投了反对票,不是我)$(function() );
只是写出$('document').ready(function());
的一种简化方式。最佳做法是在其中执行触发事件,以确保在用户触发事件之前文档已完全加载【参考方案2】:
我是$('document').ready(function());
https://api.jquery.com/ready
你不需要你的第二个函数
所以:
$(document).ready(function()
$("#files").on("change", function()
alert("Files changed.");
);
);
【讨论】:
谢谢,我不知道on("ready"
在 1.8 中已被弃用,这两个答案都对我有用,但 Alex 先回答了以上是关于更改时的jQuery文件输入未触发的主要内容,如果未能解决你的问题,请参考以下文章
<select> 上的 jQuery 更改事件未在 IE 中触发