2016-07-16 3 views
0

창이 490을 초과하면 jquery 이벤트를 삭제하려고합니다. 그러나 unblind() 또는 off() 요소는 창이 490px보다 작아지면 활성화 된 동작을 비활성화하지 않습니다. 왜 이런거야? 누구든지 선택을 원래 상태로 되돌릴 수있는 방법을 알고 있습니까? 여기 창 크기를 조정할 때 jQuery 이벤트의 바인딩 해제/해제 방법

$(document).ready(function(){ 

    $(window).resize(function(){ 
    if ($(window).width()<490) { 
    $("#shown").unbind().click(function(){ 
     event.preventDefault(); 
     $("body div hidden").toggle('slow'); 
    }); 
    } 

    else if ($(window).widht()>=490) { 
     $("#shown").unbind(); 
     $("body div hidden").unbind(); 
    } 
    }); 
}); 

</script> 
+1

정확히 달성하기를 원하십니까? –

+1

항상 이벤트 핸들러를 바인드/바인드 해제하는 것보다 클릭 이벤트 자체에서 창 크기를 확인하는 것이 훨씬 쉽습니다. 또한 미디어 쿼리를 사용하는 CSS만으로도 이것을 달성 할 수 있으며'pointer-events : none' –

+0

'hidden' 선택기가 의심스러워 보입니다. 클래스 또는 의사 선택자': hidden', 요소 유형이 아닌 것 같습니다. 어쨌든, ypu는 Rory의 조언을 따르는 편이 낫습니다 –

답변

0

는 당신이 달성 할 수있는 방법입니다 원하는 화면 크기에 따라 숨기기 이벤트 바인딩을 해제합니다 아래 코드.

$(document).ready(function() 
 
{ 
 
var eventPresent = false; 
 
$(window).resize(function() 
 
{ 
 
console.log("current width : ", $(window).width()); 
 
    
 
if ($(window).width()<490 && eventPresent == false) 
 
{ 
 
$("#shown").unbind().click(function(event) 
 
{ 
 
    event.preventDefault(); 
 
    $("#divText").toggle('hide'); 
 
}); 
 
eventPresent = true; 
 
}  
 
else if ($(window).width()>=490 && eventPresent == true) 
 
{    
 
    $("#shown").unbind(); 
 
    $("#divText").show() 
 
    eventPresent = false;  
 
} 
 
    }); 
 
}); 
 

 
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script> 
 

 
<a id="shown">click me to hide text</a> 
 
    
 
<div id="divText"> 
 
       
 
You can not toggle me if screen is more than 490 px wide 
 
      
 
</div> 
 

P.S는 전체 페이지 모드에서 미리보기를 실행합니다.

+0

이것은 놀라 울 정도로 잘 작동합니다. 그것이 토글하는 옵션에 대해 작동하지 않는 것처럼 보입니다. 보시다시피, 숨길 것은 메뉴입니다. 나는 "표시된"을 클릭 할 때 다른 옵션을 보길 원합니다. 그 순간에 내가 클릭하면 '표시'가 사라지지만 다시 나타나지 않습니다. 또한 var, console.log 및 eventPresent true/false가 무엇인지 물어볼 것이지만, 아마도 수업이 될 것입니다. 지금은 코딩 기술을 칭찬 해주세요! –

+0

그것은 토글에도 잘 작동합니다. 동일한 코드를 업데이트했습니다. 이게 도움이되는지 알려주세요. – Deep

+0

정말 고마워요! : D –

관련 문제