개체를 창에 추가하면 수신기가 배치 된 개체를 제외한 본문의 클릭을 수신 대기하고 제거하는 자바 스크립트를 만들려고합니다. 실제 객체 자체를 제외하고는 윈도우의 아무 곳이나 클릭하면 객체가 클릭됩니다.절대 위치 요소보기에서 절대 위치 요소보기에 Z- 색인
수많은 실패한 시도를 통해 오버레이 div를 overlay2 (또는 무엇이든지 중요하지 않은)라는 화면에 동적으로 추가 한 다음 해당 div에 대한 클릭을 수신합니다. 오버레이를 창에 추가하고 이미 배치 된 최상위 요소 (예를 들어 5000)보다 높은 숫자로 zIndex를 설정 한 다음 오버레이 위에 배치되는 유일한 개체의 zIndex를 더 높은 숫자 (예 : 6000)로 설정하면 , 오버레이는 모든 것 위에 계속 나타나고 나는 그 위에 놓으려는 div의 객체를 선택할 수 없습니다.
var overlayDiv = document.createElement('div');
overlayDiv.setAttribute('id', 'overlay2');
overlayDiv.style.zIndex = '5000';
overlayDiv.style.width = '100%';
overlayDiv.style.height = '100%';
overlayDiv.style.left = '0';
overlayDiv.style.top = '0';
overlayDiv.style.position = 'absolute';
document.body.appendChild(overlayDiv);
$(container).append(template);
template.style.zIndex = '6000';
//Listeners
//Page click listener. Closes the tool when the page is clicked anywhere but inside the parent.
var initialClick = false;
$('body').on('click.editObjectListeners', function(event) {
var target = EventUtility.getTarget(event);
if(initialClick) {
console.log(target.id);
if(target.id == 'overlay2' && target.id != '') {
$(overlayDiv).remove();
finish();
};
}
initialClick = true;
});
나는 overlayDiv의 절대 위치 지정과 관련이 있음을 확인했습니다. 테스트하는 동안 템플릿을 배치하기 위해 절대 위치 지정을 사용하고 overlayDiv처럼 템플릿 객체를 직접 추가하면 zIndex는 원래 예상했던대로 overlayDiv보다 위에 작동합니다. 불행하게도이 요소를 절대적으로 배치하는 것은 테스트 목적을 넘어서는 나에게별로 의미가 없습니다. 이 문제를 해결할 방법이 있습니까?
IMHO, KISS를 따라 가면서 질문을 짧게하십시오. – Baz1nga
안녕하세요 컨테이너 요소는 어디에 배치되어 있습니까? 템플릿 요소 위치 속성을 할당 했습니까? – AmGates
z 색인을 제외하고 모든 것이 할당되고 올바르게 작동합니다. 심지어 z 인덱스가 할당 되더라도 꼭 그렇게 행동하지는 않습니다. bazinga 난 내 질문에 appologize하지만 전체적으로 나는 꽤 짧고 요점을 생각합니다. 귀하의 의견은 어떤 식 으로든 정말로 도움이되지 않습니다. – ryandlf