easyui 解析完成事件 $.parser.onComplete 重复触发
最近在维护一个使用easyui框架的老项目,
有的时候我们需要在页面加载后给easyui控件赋值,于是用到了$.parser.onComplete这个事件
但是我发现,当该页面想要弹个easyui的提示框的时候,$.parser.onComplete这个事件又被触发了,
也就是说如果你绑定了这个事件,后续只要有任何解析操作,它都会重复的触发这个事件,这就让人很蛋疼,
因此只能在用完这个事件后解除它的绑定
//因为easyui解析这块比较坑爹,因此需要封装一下 function easyuiInit(callback) { $.parser.onComplete = function () { //监听解析器完成后,因为存在easyui控件尚未解析完成就要使用结果报错的情况 callback(); //具体的业务操作 $.parser.onComplete = function () { } //用完后必须解除绑定,因为有任何其他解析操作都会重复执行callback } }
使用的时候大概是这样的
easyuiInit(() => { //必须easyui控件解析完成后才能赋值 $('#ExFactoryDate').datebox('setValue', formatDate(new Date(), "yyyy-MM-dd HH:mm:ss")); });