2012-01-03 15 views
0

特定のアイコンを選択するとオーバーレイが表示されます。GoogleのChromeやSafariでelseステートメントが動作しない場合のJquery

問題: 1.)これはFFでは素晴らしいですが、他の場所ではうまくいきません。それは時々私が要素を調べているときにクロムで働く。 2.)このコードを書くには、もっと短い方法が必要です...?

$(window).load(function(){ 
    var $quickview = $(".quickview"); 


$('.quickview').click(function() { 
    var $t = $(this).parents("a"); 

    if($t.is(":nth-child(1)")){ 
     var css={} 
     $("#overlay1").css("display","block"); 
     console.log("1") 
     } 
    else if($t.is(":nth-child(2)")){ 
     var css={} 
     $("#overlay2").css("display","block"); 
     console.log("2") 
     } 
    else if($t.is(":nth-child(3)")){ 
     var css={} 
     $("#overlay3").css("display","block"); 

     } 
    else if($t.is(":nth-child(4)")){ 
     var css={} 
     $("#overlay4").css("display","block"); 
     } 
    else if($t.is(":nth-child(5)")){ 
     var css={} 
     $("#overlay5").css("display","block"); 
     } 
    else if($t.is(":nth-child(6)")){ 
     var css={} 
     $("#overlay6").css("display","block"); 
     } 
    else if($t.is(":nth-child(7)")){ 
     var css={} 
     $("#overlay7").css("display","block"); 
     } 
    else if($t.is(":nth-child(8)")){ 
     var css={} 
     $("#overlay8").css("display","block"); 
     } 
    else if($t.is(":nth-child(9)")){ 
     var css={} 
     $("#overlay9").css("display","block"); 
     } 
    else if($t.is(":nth-child(10)")){ 
     var css={} 
     $("#overlay10").css("display","block"); 
     } 

$('.exit, .overlay').click(function() { 


    if($t.is(":nth-child(1)")){ 
     var css={} 
     $("#overlay1").css("display","none"); 
     } 
    else if($t.is(":nth-child(2)")){ 
     var css={} 
     $("#overlay2").css("display","none"); 
     } 
    else if($t.is(":nth-child(3)")){ 
     var css={} 
     $("#overlay3").css("display","none"); 
     } 
    else if($t.is(":nth-child(4)")){ 
     var css={} 
     $("#overlay4").css("display","none"); 
     } 
    else if($t.is(":nth-child(5)")){ 
     var css={} 
     $("#overlay5").css("display","none"); 
     } 
    else if($t.is(":nth-child(6)")){ 
     var css={} 
     $("#overlay6").css("display","none"); 
     } 
    else if($t.is(":nth-child(7)")){ 
     var css={} 
     $("#overlay7").css("display","none"); 
     } 
    else if($t.is(":nth-child(8)")){ 
     var css={} 
     $("#overlay8").css("display","none"); 
     } 
    else if($t.is(":nth-child(9)")){ 
     var css={} 
     $("#overlay9").css("display","none"); 
     } 
    else if($t.is(":nth-child(10)")){ 
     var css={} 
     $("#overlay10").css("display","none"); 
     } 
    }); 
}); 

}); 

助けてください! ありがとう!

+0

のようなものを試してみました。 JavaScriptはそうします。代わりにselect/case文を使用してみてください。 –

+0

あなたのコードを短縮するには。 'click'ハンドラのボディを次のように置き換えてください:' var $ t = $(this).closest( "a"); var index = $ t.parent()。children( "a")。index($ t) +1; $( "#オーバーレイ" +インデックス).show(); '。問題を解決するには:問題を明確にしてください。 –

答えて

3

あなたはjQueryの場合/ else文を持っていないこの

$('.quickview').click(function() { 
    var i = ($(this).parents("a").index() + 1); 
    $("#overlay"+ i).css("display","block"); 
    console.log(i); 

}); 
+1

正確な基準を満たすために 'i + 1'が必要です。 ['index'](http://api.jquery.com/index/)はゼロベースですが、' nth-child'は1ベースです。また、 '.css(" display "、" block ")'は '.show()'と同じです。 –

+0

+1を 'i + 1'にします。私は反映するために編集します。しかし、私は 'display'' block'を反映するためにCSSを残します。彼はスパンで働いていて、ある種の効果を持っている可能性があります。 –

+0

ありがとうございました!!本当に助けて!私はこれ以上5日間これに固執していただろう。 –

関連する問題