问题:
当使用jquery ajaxfileupload插件之后会出现如下事件只执行一次的'bug'
$('input[type="file"]').click(function() {
...
})
原因:
这并不是一个bug,你以为change事件失效了,其实并没有,而是当ajaxfileupload插件在进行操作之后会用一个新的input替换原来的input,之前change事件绑定的元素不在了,change事件自然不会触发。
$('#uploaderInput').on("change",function() {
$.ajaxFileUpload({
url : '', //提交的路径
secureuri : false, // 是否启用安全提交,默认为false
fileElementId : 'uploaderInput', // file控件id
dataType : 'json',
data : {},
success: function(res) {
}
...
这样写同样是当input内容改变的第一次会执行相应操作,但是之后就不会了
解决方法:
使用off将原来的节点上的on绑定的事件移除,重新为新替换的元素绑定新的事件:
$(document).off('change','input[type="file"]').on('change','input[type="file"]',function(){
$.ajaxFileUpload({
url : '', //提交的路径
secureuri : false, // 是否启用安全提交,默认为false
fileElementId : 'uploaderInput', // file控件id
dataType : 'json',
data : {},
success : function(res) {
...
}