부모 요소를 초과하여 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에 따라 라이센스가 부여됩니다.