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"));
        });

 

posted @ 2024-02-20 18:12  WmW  阅读(26)  评论(0编辑  收藏  举报