부모 요소를 초과하여 EasyUI dialog 팝업 창을 닫을 수 없는 버그 해결
2963 단어 EasyUI
브라우저의 경계가 있는 창을 끌어낼 때 $(document).width();커집니다. 커진 부분은 창이 브라우저 창을 초과하는 부분이기 때문에right > 브라우저 Width 조건은 영원히 만족할 수 없습니다.
만약에 우리가 좀 더 많이 생각하고 있다면 사실 패널, 다이어로그, 윈도우 세 개의 구성 요소에 대해 우리가 요구하는 것은 브라우저의 경계를 넘지 못하도록 하는 것이 아니라 부모 요소의 경계를 넘지 못하도록 요구하는 것이다. 그리고 부모 요소의 오버플로우가hidden이 아닐 때 구성 요소가 부모 요소의 오른쪽 아래를 넘어서는 것을 허용해야 한다. 개인적으로 이것이 더욱 합리적이라고 생각한다.
그래서 최종 코드는 다음과 같은 형식으로 바꾸는 것이 비교적 합리적이다.
/**
* add by cgh
* panel window dialog
* overflow hidden,
* overflow hidden,
* @param left
* @param top
* @returns
*/
var easyuiPanelOnMove = function(left, top) {
var parentObj = $(this).panel('panel').parent();
if (left < 0) {
$(this).window('move', {
left : 1
});
}
if (top < 0) {
$(this).window('move', {
top : 1
});
}
var width = $(this).panel('options').width;
var height = $(this).panel('options').height;
var right = left + width;
var buttom = top + height;
var parentWidth = parentObj.width();
var parentHeight = parentObj.height();
if(parentObj.css("overflow")=="hidden"){
if(left > parentWidth-width){
$(this).window('move', {
"left":parentWidth-width
});
}
if(top > parentHeight-height){
$(this).window('move', {
"top":parentHeight-height
});
}
}
};
$.fn.panel.defaults.onMove = easyuiPanelOnMove;
$.fn.window.defaults.onMove = easyuiPanelOnMove;
$.fn.dialog.defaults.onMove = easyuiPanelOnMove;
사용 방법:
js 코드를 js 파일로 저장합니다. jquery.easyui.min.js 다음에 저장된 js 파일을 가져오면 됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
easyUI tree 확장 및 축소 작업 및 노드 할당 작업$(function(){ $('#menuTree').tree({ url:'menuTree!findMenuTree.action', lines:true, onClick:function(node){ var leaf = $...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.