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 options = that.config;
|
||||||
var mainElem = thisModule.findMainElem(id);
|
var mainElem = thisModule.findMainElem(id);
|
||||||
|
|
||||||
|
if(resizeObserver){
|
||||||
|
resizeObserver.unobserve(options.elem[0]);
|
||||||
|
}
|
||||||
|
|
||||||
// 若存在已打开的面板元素,则移除
|
// 若存在已打开的面板元素,则移除
|
||||||
if (mainElem[0]) {
|
if (mainElem[0]) {
|
||||||
mainElem.prev('.' + STR_ELEM_SHADE).remove(); // 先移除遮罩
|
mainElem.prev('.' + STR_ELEM_SHADE).remove(); // 先移除遮罩
|
||||||
mainElem.remove();
|
mainElem.remove();
|
||||||
options.elem.removeData(MOD_INDEX_OPENED);
|
options.elem.removeData(MOD_INDEX_OPENED);
|
||||||
if(resizeObserver){
|
if(resizeObserver){
|
||||||
resizeObserver.unobserve(options.elem[0]);
|
|
||||||
resizeObserver.unobserve(mainElem[0]);
|
resizeObserver.unobserve(mainElem[0]);
|
||||||
}
|
}
|
||||||
delete dropdown.thisId;
|
delete dropdown.thisId;
|
||||||
|
|
|
@ -876,7 +876,7 @@
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
var ATTR_NAME = 'lay-resizeobserver-key';
|
var ATTR_NAME = 'lay-' + namespace + '-resizeobserver-key';
|
||||||
var handlerCache = {};
|
var handlerCache = {};
|
||||||
|
|
||||||
var o = new ResizeObserver(function (entries) {
|
var o = new ResizeObserver(function (entries) {
|
||||||
|
@ -905,6 +905,7 @@
|
||||||
element.setAttribute(ATTR_NAME, attrValue);
|
element.setAttribute(ATTR_NAME, attrValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 使用同一个观察者实例多次观察同一个元素,不会重复添加
|
||||||
handlerCache[attrValue] = callback;
|
handlerCache[attrValue] = callback;
|
||||||
o.observe(element);
|
o.observe(element);
|
||||||
},
|
},
|
||||||
|
@ -924,11 +925,20 @@
|
||||||
delete handlerCache[attrValue];
|
delete handlerCache[attrValue];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
element.removeAttribute(ATTR_NAME);
|
||||||
o.unobserve(element);
|
o.unobserve(element);
|
||||||
},
|
},
|
||||||
disconnect: function () {
|
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();
|
o.disconnect();
|
||||||
handlerCache = {};
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue