2016-05-30 14 views
-1

これがなぜ動作しないのか誰にでも教えてもらえませんか?CSSの幅を変更するJavaScript if-else条件

$(function() { 
    $("#header").click(function() { 
     if ($(".menuBody").css('width') == 0) { 
      $(".menuBody").delay(0).animate({"width": "350"}, 500); 
     } 
     else if ($(".menuBody").css('width') == 350){ 
      $(".menuBody").delay(400).animate({"width": "0"}, 500);}; 
     }); 
}); 
+2

JavaはJavaScriptではありません。どのようなエラーが出ますか?あなたの質問に[mcve]を投稿してください – j08691

+0

これは実際にはjQueryです。 – Rob

答えて

2

.css('width')は数字と等しくありません。これは文字列と同じです。代わりに.width()を使用してください。ここ

$(function() { 
    $("#header").click(function() { 
    if ($(".menuBody").width() == 0) { 
     $(".menuBody").delay(0).animate({"width": "350"}, 500); 
    } 
    else if ($(".menuBody").width() == 350){ 
     $(".menuBody").delay(400).animate({"width": "0"}, 500); 
    } 
    }); 
}); 

さらに詳しい情報:http://api.jquery.com/width/

+0

これは魅力的に機能しました!あなたは驚くべきことですが、シンプルな問題には申し訳ありません。私は少しでも多くを持っていると確信しています! – LeeAlexander

0

は、上に行くために多くはありませんですが、多分ライン4と6であなたの幅が文字列であるため、「350」としませ整数:350

1

$(function() { 
    $("#header").on('click', function() { 
    if ($(".menuBody").width() == 0) { 
     $(".menuBody").delay(0).animate({"width": "350px"}, 500); 
    } 
    else if ($(".menuBody").width() == 350){ 
     $(".menuBody").delay(400).animate({"width": "0"}, 500); 
    } 
    }); 
}); 

EDIT: 使用.width()

あなたの問題を解決するために、このコードを試してみてくださいead of .css('width');

関連する問題