0

私は次のコードを持っています..

    function showNext(opt)  {
        takeAway();
        if(opt == "Picked Up") $("#pickedup").css("display", "");
        if(opt == "Bus to alternate") $("#altad2").css("display", "");
        if(opt == "Walk to alternate") $("#altad1").css("display", "");
    }


function takeAway(){
    $("#pickedup").css("display", "none");
    $("#altad2").css("display", "none");
    $("#altad1").css("display", "none");
}

この場合、誰かが代替バスまたは徒歩代替を選択すると、それぞれ altad2 と altad1​​ が表示されます。

しかし、それは私が望むものではありません..

私が望むのは、誰かが交互にバスを選択した場合、altad2 と altad1​​ の両方が表示され、誰かが交互に歩くことを選択した場合も同じです。

次のようなことを行う簡単な方法はありますか

 if(opt == "Bus to alternate") $("#altad2").css("display", "") and $("#altad1").css("display", "");
    if(opt == "Walk to alternate") $("#altad1").css("display", "") and $("#altad2").css("display", "");
4

3 に答える 3

1

次のようなことを試すことができます:

if(opt == "Bus to alternate" || opt == "Walk to alternate" ){
    $('[id^="altad"]').css("display", "");
}
于 2013-02-21T17:49:16.263 に答える
1

より良い方法は、マップを作成することです。これにより、コード サイズが縮小され、高速になります。

function showNext(opt)  {
        takeAway()

      var optMap={
             "Picked Up":"#pickedup",
             "Bus to alternate":"#altad2,#altad1",
             "Walk to alternate":"#altad2,#altad1",
              }
           $(optMap[opt]).css("display","") ;       

}
function takeAway(){
    $("#pickedup,#altad2,#altad1").css("display", "none");
 }

すべての ID を 1 つのセレクターにカンマ区切りで保持します。この場合、jquery オブジェクトを 1 つだけ作成します。

于 2013-02-21T17:57:43.993 に答える
0

これを試して:

function showNext(opt)    {
takeAway();

if(opt == "Picked Up") $("#pickedup").css("display", "");
if(opt == "Bus to alternate") 
{
 $("#altad2").css("display", "");
 $("#altad1").css("display", "");
}
if(opt == "Walk to alternate") 
{
 $("#altad2").css("display", "");
 $("#altad1").css("display", "");

} 


}

サルドス ;)

于 2013-02-21T17:49:27.530 に答える