我无法理解我的脚本执行的顺序
我的jQuery拖放插件中有以下代码
//...
drop : function( event ) {
event.stopPropagation();
event.cancelBubble = true;
event.preventDefault();
$(this).removeClass("dropboxHover");
methods.processFiles(event.dataTransfer.files);
},
//...
我不明白的是,为什么我的脚本首先处理文件列表(需要花费相当长的时间),然后在完成其他所有操作后删除该类。
不应该是相反的方式吗?
因此,在放开鼠标后需要几秒钟才能看到视觉效果。这表明浏览器冻结了什么。
帮助或代码很受欢迎!
答案 0 :(得分:2)
尝试将processFiles包装在setTimeout 0中:
//...
drop : function( event ) {
event.stopPropagation();
event.cancelBubble = true;
event.preventDefault();
$(this).removeClass("dropboxHover");
setTimeout(function(){methods.processFiles(event.dataTransfer.files);}, 0);
},
//...