Ga
Ga
  • 发布:2015-03-12 17:58
  • 更新:2015-03-13 02:30
  • 阅读:5521

[报BUG]mui mask.show() mask.close()方法内部this对象错误

分类:MUI

很明显的对this对象的理解错误,导致错误编码
出错代码实例,图省事我就用jQuery的ajax演示了

var mask = mui.createMask();
$(document).ajaxStart(mask.show);
$(document).ajaxStop(mask.close);

很常见的ajax请求开始遮罩,请求结束关闭遮罩,直接让mask.close作为ajaxStop的回调事件
然后很自然的close方法中的this就会是$(document)了,也不会有_remove方法了,抛出异常
Uncaught TypeError: Object #<HTMLDocument> has no method '_remove'

今天BUG报的有点多啊...这两天能确认了的bug赶紧把积分返还了吧,这么下去过不了下星期就又发不了bug了

2015-03-12 17:58 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

已修复,
确认为BUG。
分数本周会返还。

上述BUG的确为考虑不周。

不过通常不建议你这种用法。因为动态修改了函数的context。碰上这种考虑不周的情况,很容易出问题。

临时解决方案:

$(document).ajaxStart(mask.show.bind(mask));
$(document).ajaxStop(mask.close.bind(mask));

或者自己wrap一下

$(document).ajaxStart(function(){mask.show();});
$(document).ajaxStop(function(){mask.close();});

该问题目前已经被锁定, 无法添加新回复