9

単純な条件文を機能させようとしていますが、問題が発生しています。失敗したコード:

    $(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")
    }
});

コードのelseif部分を削除すると、アラートが表示されます。&&または||を使おうとすると 演算子は失敗します。私はグーグルで検索しましたが、それが機能しない理由を見つけることができません。私も試しました:

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

他の方法と一緒に、それが奇妙な構文のものである場合に備えて。

どんな助けでも大歓迎です。ありがとう :)

4

3 に答える 3

18
((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")
}
于 2012-04-21T17:06:53.943 に答える
2
if (wwidth > 321 && wwidth < 481) {
//do something
}
于 2012-04-21T17:08:25.280 に答える
0

2つの問題があります。1つ目はすでに回答済みで、2つ目は「wwidth> 320」であり、「wwidth>=320」である必要があります。ウィンドウが480より大きい場合はどうなりますか?

次のように「between」を実装することもできます。

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.");  
}); 
于 2012-04-21T17:25:36.147 に答える