2014-02-12 2 views
0

기본적으로 뭔가를 만드는 div가 있고 특정 너비가있는 경우 다른 것을 만듭니다. 조건부에 문제가 있다고 생각합니다. 어떻게 말 할 수 있습니다 : "너비가 150 픽셀이라면 뭔가를하지만 다른 것은 하지마."내 코드가 왜 잘못 되었나요? 여기 조건부 너비 및 preventDefault

Fiddle

jQuery를 재생하는 예입니다

$(function(){ 
     $('#menu').click(function(event) { 
     if ('#menu'.width() === 150){ 
     event.preventDefault(); 
      alert("something");   
     } 
     }); 

     $("#menu").click(function() { 
     $("this").animate({right: 0}, 500); 
     });  
    }) 

CSS :

#menu { 
    position:absolute; 
    top:50px; right:50px; 
    width:150px; height:108px; 
    background:blue; 
    cursor:pointer; 
} 

HTML :

<div id="menu"> </div> 
+2

그것은 무엇인가 :' 'menu'.width()'??? 당신은 문자열 선택자를 jquery 객체 안에 감쌀 필요가있다 :'$ ('# menu'). width()'이것은 $ ("this")'틀림, 한 번의 클릭 핸들러 만 사용해야한다. etc ... SO는 디버깅 서비스가 아니므로 콘솔을 열고 정말로 붙어있을 때 관련 질문을하십시오 –

답변

0

나는 당신의 구문을 변경 만든 - http://jsfiddle.net/w25mQ/4/

if($('#menu').width === 150).... 

$(this).animate.... 

주석 기, 당신은 다음과 같이 당신의 클릭 핸들러를하지만 잘 결합해야한다 - http://jsfiddle.net/w25mQ/5/

+1

감사합니다. div를 피하려면 "do do else else"를 추가하고 여기에 문장을 추가하십시오. http://jsfiddle.net/w25mQ/7/ – Nrc

0

당신은 jQuery로 오용의 여지가 코드에서 :

$(function(){ 
    $('#menu').on('click', function(event) { 
     if ($(this).width() === 150){ 
      event.preventDefault(); 
      alert("something");   
     } 
    }); 

    $("#menu").on('click', function() { 
     $(this).animate({right: 0}, 500); 
    }); 
}) 

다음은 수정 된 코드 및 재생 예입니다. 그것과 함께 jsfiddle