mirror of https://github.com/layui/layui
update
parent
99d5974092
commit
3c64d33e6e
|
@ -395,13 +395,16 @@ layui.define(['i18n', 'jquery', 'laytpl', 'lay', 'util'], function(exports) {
|
|||
var options = that.config;
|
||||
var mainElem = thisModule.findMainElem(id);
|
||||
|
||||
if(resizeObserver){
|
||||
resizeObserver.unobserve(options.elem[0]);
|
||||
}
|
||||
|
||||
// 若存在已打开的面板元素,则移除
|
||||
if (mainElem[0]) {
|
||||
mainElem.prev('.' + STR_ELEM_SHADE).remove(); // 先移除遮罩
|
||||
mainElem.remove();
|
||||
options.elem.removeData(MOD_INDEX_OPENED);
|
||||
if(resizeObserver){
|
||||
resizeObserver.unobserve(options.elem[0]);
|
||||
resizeObserver.unobserve(mainElem[0]);
|
||||
}
|
||||
delete dropdown.thisId;
|
||||
|
|
|
@ -876,7 +876,7 @@
|
|||
return null;
|
||||
}
|
||||
|
||||
var ATTR_NAME = 'lay-resizeobserver-key';
|
||||
var ATTR_NAME = 'lay-' + namespace + '-resizeobserver-key';
|
||||
var handlerCache = {};
|
||||
|
||||
var o = new ResizeObserver(function (entries) {
|
||||
|
@ -905,6 +905,7 @@
|
|||
element.setAttribute(ATTR_NAME, attrValue);
|
||||
}
|
||||
|
||||
// 使用同一个观察者实例多次观察同一个元素,不会重复添加
|
||||
handlerCache[attrValue] = callback;
|
||||
o.observe(element);
|
||||
},
|
||||
|
@ -924,11 +925,20 @@
|
|||
delete handlerCache[attrValue];
|
||||
}
|
||||
|
||||
element.removeAttribute(ATTR_NAME);
|
||||
o.unobserve(element);
|
||||
},
|
||||
disconnect: function () {
|
||||
for (var key in handlerCache) {
|
||||
if (lay.hasOwn(handlerCache,key)) {
|
||||
delete handlerCache[key];
|
||||
var elem = document.querySelector('[' + ATTR_NAME + '="' + key + '"]');
|
||||
if(elem){
|
||||
elem.removeAttribute(ATTR_NAME);
|
||||
}
|
||||
}
|
||||
}
|
||||
o.disconnect();
|
||||
handlerCache = {};
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue