您的位置:首页 > Web前端 > JQuery

jQuery的ajaxFileUpload上传插件——刷新一次才能再次调用触发change

2016-10-20 16:33 671 查看
这个问题并不是由change事件失效造成的,而是ajaxFileUpload插件造成的,它会把原来的file元素替换成新的file元素,所以之前绑定的change事件就失效了。

查了一些资料,有些朋友推荐了一些方案:

方案一:选择完成自动提交的问题,在每次处理完成后把 file表单 克隆替换成原来的代码

$("#upload").replaceWith($("#upload").clone(true));

方案二:用jQuery的live代替直接使用change。

错误代码:

$("#UploadFile").change(function(){ //do someing });

正确代码:

$("#UploadFile").live('change', function(){ //do someing });

以上是其他朋友方案,经测试并不能解决(可能是我本地代码有问题)。

而我自己的方案则是:

<a class="file"><input id="btnfile" name="btnfile" type="file"/>浏览</a>

我们正常给input 加事件,要么就是直接在表单绑定onchange事件;要么是在js写绑定事件,而这里的绑定事件的方式则有多种:bind(),on(),live()

不管用以上哪种方式input 的事件都会只会触发一次,那么我是怎么处理的呢?

我的绑定事件是这样写的:$(".file").on("change", "input[type='file']", function () {});

就这样搞定了,哈哈哈。。。共同学习,希望对大家有帮助,欢迎提出问题共同交流!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐