upload 模块有没有禁用与启用功能?

提问 未结 2 71
矩网科技
悬赏:20飞吻
版本:layui 最新 浏览器:最新
是这样的,现在的上传,render 一个元素后可以点击弹出选择文件框,我想做的是在这一个页面里我需要逻辑处理(动态),如果符合条件就可以弹出选择文件框,如果不符合条件就点按钮没反应,当符合条件了又可以点击出现选择框。
我用 jq 的 off 按钮后是没反应了,但是重新 render 后也没反应
回帖
  • 你可以在upload初始化之前判断条件,如果符合条件就初始化upload,如果不符合条件就不初始化upload
    0 回复
  • @HiTerry 是的,可以,但是我这个页面有其他的逻辑条件处理,需要动态的去设置按钮的点击反应。我刚才导代码了,发现了:
    //防止事件重复绑定
    if (options.elem.data('haveEvents')) return;

    that.elemFile.on('change', function() {
    $(this).trigger('upload.change');
    });

    options.elem.on('click', function() {
    if (that.isFile()) return;
    $(this).trigger('upload.start');
    });

    if (options.drag) {
    options.elem.on('dragover', function(e) {
    e.preventDefault();
    $(this).trigger('upload.over');
    }).on('dragleave', function(e) {
    $(this).trigger('upload.leave');
    }).on('drop', function(e) {
    e.preventDefault();
    $(this).trigger('upload.drop', e);
    });
    }

    options.bindAction.on('click', function() {
    $(this).trigger('upload.action');
    });

    options.elem.data('haveEvents', true);
    主要是 “防止事件重复绑定” 这个,第一次 render() 的时候给按钮节点 data 设置了 haveEvents 为 true,所以我给 按钮 off() 后,再次 render() 的后点击按钮就没反应了,回为 return 了,下面的 on 没绑上。
    我的处理方法是:在禁用或启用的逻辑里把按钮节点的 data 属性 haveEvents 值设置成 false 就ok了
    0 回复