需求是在初始化uploadify的时候根据一些条件禁用上传按钮
根据文档
在onInit事件中使用
$('#file_upload').uploadify('disable', true)"
可以disable掉上传按钮
但是实际操作时上传按钮并没有被禁用
查看控制台发现uploadify报“Call to SetButtonDisabled failed”
打断点debug时又发现一切正常,没有报错,按钮也被禁用了
网上相关错误比较少,最后在uploadify的官网论坛上发现了一些相关讨论
http://www.uploadify.com/forum/#/discussion/8464/possible-bug-disable-doesnt-work-just-after-created/p1
解决方法是用onSWFReady事件代替onInit事件
即,将禁用按钮的逻辑代码写在onSWFReady事件中
个人猜测由于uploadify的上传按钮是Flash Object,而onInit事件触发时Flash Object还未加载完毕,此时设置disable按钮就会报错,debug时由于断点延后了disable按钮的执行时间,此时Flash Object已经加载完毕所以此时设置disable按钮成功。
而onSWFReady根据官方解释是“Triggered when the Flash object is loaded and ready.”即在Flash object加载完毕后触发,所以如果要在初始化uploadify的时候根据一些条件禁用上传按钮,onSWFReady是正确的触发事件