0

OK、以前にこの質問を見たことがありますが、提供された解決策はどれもうまくいかなかったため、新しいスレッドを開始することにしました。複数の結果が HTML に表示されており、それぞれに jQuery 関数を個別に使用したいと考えています。残念ながら、予想どおり、効果はすべての div に適用されます。以下のコード:

<div class="block_result">


<div class="details">
    <div class="info">
        {$$Title} {$$points} {$$rates}
    </div>

    <div class="navbar">
        <div class='btn1'><a href="#d" class="fadingTab active" value="Tab1"><img src="some_png.png" alt=""></a></div>
        <div class='btn2'><a href="#f" class="fadingTab" value="Tab2"><img src="some_png.png" alt=""></a></div>
        <div class='btn3'><a href="#r" class="fadingTab" value="Tab3"><img src="some_png.png" alt=""></a></div>
    </div>


    <div class="contentContainer">

        <div id="Tab1" class="contentWrapper">

                <p class="contentText Tab1">some info</p>

            </div>

            <div id="Tab2" class="contentWrapper" >

                <p class="contentText Tab2">some other info</p>

            </div>

            <div id="Tab3" class="contentWrapper" >

                <p class="contentText Tab3">some other other info</p>

            </div>
    </div>

</div>

<div style="clear:both;"></div>

</div>

それぞれの結果に同じ HTML 形式が適用されます。これがjQueryコードと、使用したい関数です。選択したタブに応じて、各結果の内容を変更したい。

// On page load
$(document).ready(function(){

    //When a tab link is clicked
    $("a.fadingTab").click(function() {    

        // remove the active class from all classes
        $(".active").removeClass("active");

        // add the active class to this tab
        $(this).addClass("active");


        // fade element with the class 'contentText' out
        $(this).find(".contentText").fadeOut(700);


        // wait for fadeout then hide element with class 'contentWrapper'
        setTimeout(function(){ $(".contentWrapper").hide(); }, 700); 


        // find 'value' attribute value and show and fade elements
        var content_show = $(this).attr("value");
        setTimeout(function(){ $("#"+content_show).show(); }, 700);
        setTimeout(function(){ $("."+content_show).hide().fadeIn(700); }, 700);                   
    });
});

1 つのタブ ボタンを押すたびに、結果の div がすべて変化します。何か案は?

4

2 に答える 2

0

まず、.delay()タイムアウトの代わりに使用することをお勧めします

そう

 setTimeout(function(){ $(".contentWrapper").hide(); }, 700);     

であろう

 $(".contentWrapper").delay(700).fadeOut();

第二に、pXL が述べたように、セレクターを間違った方法で使用しています。との組み合わせを使用してclosest、あるセレクターから別のセレクターに移動します。findfilter

于 2013-05-22T19:35:28.440 に答える