我试图 100% 接受 jQuery,因为它简单而优雅的 API,但我遇到了 API 和直接 HTML 之间的不一致,我无法弄清楚。
我有一个 AJAX 文件上传器脚本(可以正常运行),我想在每次文件输入值更改时运行该脚本。这是我的工作代码:
<input type="file" size="45" name="imageFile" id="imageFile" onchange="uploadFile()">
当我转换onchange
事件到 jQuery 实现:
$('#imageFile').change(function(){ uploadFile(); });
结果不一样。随着onchange
归因于uploadFile()
只要值按预期更改,就会调用该函数。但是使用 jQuery API.change()
事件处理程序,该事件仅在第一次更改值时触发。此后的任何值更改都将被忽略。这对我来说似乎是错误的,但这肯定不是 jQuery 的疏忽,对吗?
有其他人遇到过同样的问题吗?除了我上面描述的之外,您还有其他解决方法或解决方案吗?
ajax上传器是否正在刷新您的输入元素?
如果是这样,你应该考虑使用 .live() 方法。
$('#imageFile').live('change', function(){ uploadFile(); });
update:
从 jQuery 1.7+ 你现在应该使用 .on()
$(parent_element_selector_here or document ).on('change','#imageFile' , function(){ uploadFile(); });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)