엘리먼트가 숨겨져 있는지 테스트하고 있습니다. 부모 엘리먼트가 숨겨져있는 경우 문제가 발생합니다. 그러면 아이도 숨김으로 간주되어 자식 엘리먼트가 추가되는 경우에도 추가됩니다. 내가 페이지로드에서이 스크립트를 실행엘리먼트가 숨겨져 있는지 테스트하기
function checkIfVisible() {
var checkLeft= $('#left').children('.module').filter(':hidden');
if(checkLeft.length > 0) {
if(!$('.resetLeft').length) {
left.prepend('<span class="resetLeft">Reset Left Widgets</span>');
}
}
, 언제 적 요소를 숨길 수 클릭 할 아이들의 : 기술적으로 "없음 표시"아니다. 상위 요소가 숨겨져 있지만 숨겨진 하위 요소 (스타일 : 표시 안 함)가없는 경우 스크립트가 추가되지 않도록 미리 지정된 요소를 지정하지 않도록 스크립트를 중지 하시겠습니까?
기본적으로.
#left
이 숨겨져 있고 (부모) 자녀가 없으면 resetLeft
이 앞에 붙는 것을 원하지 않습니다. 그러나 #left
이 숨겨져 있고 그 중 하나 이상의 자식이 display : none이면 앞에 붙습니다. 왼쪽이 숨겨져 있지 않더라도 나는이 일을해야한다.
var visible = $('#left').is(':hidden') && $('#left').children('.module').filter(function() {
return this.style.display === 'none';
}).length === 0;
을하지만이 해킹처럼 보인다 :
왜 '==='를 사용했는지 알려주실 수 있습니까? '=='도 완벽하게 작동합니다. – wuhcwdc
@PankajGarg : 왜 안 되니? – Blender
죄송 합니다만, 말씀하지 않으 셨습니다. – wuhcwdc