2014-02-12 32 views
0

我有div做默認的東西,如果它有一個特定的寬度,使其他東西。 我想我有條件的問題。我怎麼能這樣說:「如果你的寬度是150px,但是別做任何事情」我的代碼有什麼問題?有條件的寬度和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」)'你應該只使用一個點擊處理器,並且等等... SO不是一個調試服務,打開你的控制檯,當真的卡住時,詢問相關問題 –

回答

0

我已經做了更改你的語法 - http://jsfiddle.net/w25mQ/4/

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

$(this).animate.... 

的評議是正確的,雖然,你應該結合自己的點擊處理程序,這樣的 - http://jsfiddle.net/w25mQ/5/

+1

謝謝,你的更正是好的。爲了避免div「做別的事」我已經添加了,並在這裏聲明: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