2014-12-19 3 views
0

다음 코드 부분에 문제가 있습니다. div를 토글하는 버튼. 토글 div 안에는 다른 div와 다른 요소가 있습니다.jquery && 연산자가 작동하지 않습니다.

$(function() { 
    $('#btn').click(function (e) { 
     e.preventDefault(); 
     console.log('clicked toggle'); 
     $('#Popover').toggle(); 
     if ($('#Popover:visible').length == 0) { 
      $('#Popover').hide(); 
     } else { 
      $('#Popover').show(); 
     } 
    }); 
}); 

$(document).on('click', function (e) { 
    var container = $('#Popover'); 
    var trigger = $('#btn'); 

    if (($(e.target).closest(trigger).length === 0) && ($(e.target).closest(container).length === 0)) { 
     container.hide(); 
    } 
}); 

div를 토글하는 것이 좋습니다. 내가 버튼/togglediv 바깥을 클릭하면 togglediv가 숨 깁니다.

문제는 div가 숨겨져있는 토글 div 내부의 div를 클릭하는 경우입니다.

& & 연산자가 작동하지 않거나 내 코드에 다른 문제가있는 것으로 보입니다.

는 아마도 "는"== "약간 다르게하도록 작용 다음 코드 토글 DIV

$('#hourInc').click(function (e) { 
     e.preventDefault(); 
     var hour = $('#cn_TimeHour').val(); 
     if (hour < 12) { 
      hour = (hour * 1) + 1; 
     } 
     else { 
      hour = 0; 
     } 
     $('#cn_TimeHour').val(("0" + hour).slice(-2)); 
     setTime(); 
    }); 
+0

'&&'연산자는 jQuery와 전혀 관련이 없습니다. 조건이 잘못되었습니다. 하나씩 디버깅 해보십시오. – Unrealsolver

+0

html로 전체 데모를 제공 할 수 있습니까? – Pavelloz

+0

문제의 관련 HTML 마크 업을 제공하십시오. –

답변

0

피드백에 감사드립니다.

클릭 이벤트가 발생한 곳. 이 메소드의 맨 아래에 return false가 삽입되었습니다.

작동하는 것 같습니다.

0

내부 DIV (DIV의 ID ="hourInc ")에 대한 온 클릭 방법 포스트 백 문제 === ".

ID (===) 연산자는 유형 변환이 수행되지 않는 경우를 제외하고 항등 (==) 연산자와 동일하게 작동하며 형식이 같아야 동일한 것으로 간주되어야합니다.

참조 : 자바 스크립트 튜토리얼 : 비교 연산자

== 연산자가 필요한 유형 변환을 수행 한 후 어떤지를 비교합니다. === 연산자는 변환을 수행하지 않으므로 두 값이 같은 유형이 아닌 경우 === 단순히 false를 반환합니다. 이 경우는 ===가 더 빠르며 ==와는 다른 결과를 반환합니다. 다른 모든 경우 성능은 동일합니다.

+0

왜 그럴까요? '.length'는 숫자를 반환합니다 –

+0

javascript에서 .length 속성의 경우 다른 유형 인 경우 정말 이상합니다. – Pavelloz

관련 문제