2012-04-21 1 views
9

私は動作するための簡単な条件文を取得しようとしており、問題が発生しています。失敗したコード:JQuery/Javascriptと&&演算子の使用

$(document).ready(function(){ 
    var wwidth = $(window).width(); 

    if (wwidth < 321) { 
     alert("I am 320 pixels wide, or less"); 
     window.scrollTo(0,0); 
    } else if (wwidth > 321) && (wwidth < 481) { 
     alert("I am between 320 and 480 pixels wide") 
    } 
}); 

コードの一部の部分を削除すると、アラートが表示されます。 & &または||を使用しようとすると演算子は失敗します。私はグーグルで、私はそれが動作していない理由を見つけることができません。私も試したことがあります:

((wwidth > 321 && wwidth < 481)) 

と一緒に試しましたが、ちょっとした場合は、ちょっと奇妙な構文です。

ご協力いただければ幸いです。ありがとう:)

+1

は、あなたのロジックのギャップをtheresの。ウィンドウがちょうど321ワイドならどうでしょうか? –

+0

世界が終わっても関係ないので、 – mrEmpty

+0

あなたのウィンドウが480px未満であると確信していますか?それ以外の場合は、正しい構文であっても警告が表示されません(良い選択肢は回答で指摘されています) – Cameron

答えて

13
((wwidth > 321) && (wwidth < 481)) 

これは必要条件です(http://jsfiddle.net/malet/wLrpt/)。

また、私はそうのようなあなたの条件を明確にすることを検討します:

if (wwidth <= 320) { 
    alert("I am 320 pixels wide, or less"); 
    window.scrollTo(0,0); 
} else if ((wwidth > 320) && (wwidth <= 480)) { 
    alert("I am between 320 and 480 pixels wide") 
} 
+0

優秀、ありがとうございます。それが治療法です。 – mrEmpty

2
if (wwidth > 321 && wwidth < 481) { 
//do something 
} 
0

二つの問題があります。最初のものは既に回答済みで、2番目のものは "wwidth> 320"で、 "wwidth> = 320"でなければなりません。ウィンドウが480より大きい場合はどうなりますか?

あなたはまた、次のように「間」を実装することができます

Number.prototype.between = function(a, b) { 
    return this >= a && this <= b 
} 

$(document).ready(function(){ 
    var wwidth = $(window).width(); 
    if (wwidth < 321) { 
     alert("I am 320 pixels wide, or less"); 
     window.scrollTo(0,0); 
    } else if (wwidth.between(321,481)) 
     alert("I am between 320 and 480 pixels wide") 
    else alert("I am greater than 480 pixels wide."); 
}); 
+0

ああ、私は '間に'好きです、私はそれを認識していませんでした。画面が480より大きい場合、私はもう少し多くのサイズをチェックし、 '1024以上であれば'で終わるステートメントをいくつか持っています。それは、デバイスに応じて、サイトで使用されるjavascriptを変更する私のclunky方法です。 – mrEmpty

+0

何かを学んだことをうれしく思います。 –

関連する問題