2011-08-02 9 views
1

jQueryを使用して、ボタンのクリックで要素の不透明度を0.3〜1.0に切り替えたいとします。
私が抱えている問題は、0.3の不透明度で要素をオフにしてから最初のクリックで1.0の不透明度で完全に見えるようにすることです。 私が試してみましたコードは以下の通りです:「div.trigger」をクリックすると、再びクリックしたときにjQuery slideトグルの開始がぼやけた

$(document).ready(function(){ 

    //Start faded to 0.3 
    $(".fadingElement").fadeTo(0, 0.3); 

    //When the trigger is clicked first, fade the relevant item back up to 1.0 
    $("div.trigger").toggle(
     function(){ 
      $(this).parent().next().fadeTo('fast', 1.0); 
     }, 
     function() { 
      $(this).parent().next().fadeTo('fast', 0.3); 
     } 
    ); 
}); 

、それがさらに0.3をフェード、フェードアップしません! 3回目にクリックすると、開始0.3にフェードします。

どのようにして0.3で要素を開始し、最初のクリックで完全に表示(1.0)に戻しますか?ここで何が起こっているのですか?

あなたは、単に例

その動作を実現するために .css('opacity',value).animate()を使用することができ
+2

http://jsfiddle.net/FVjnX/ –

+0

これは、@ James Allardiceと同じように、私が作ったテストでも動作します。 – jackJoe

+0

ああ、あなたのjsfiddleテストも私のために働いた!しかし、私のコードはそうではありません。何か... – Mikey

答えて

1

あなたのコードはdivではなく、divの親を退色させています。

あなたは、その親の中に正しい要素を選択するfindメソッドを使用することができます。

$(this).parent().next().find(".student_notified").fadeTo('fast', 0.3); 

ここupdated fiddleです。

+0

これはうまくいきました。ありがとうジェームズ、あなたはブリリアントです! – Mikey

0

:(あなたのフィドルのコードに基づいて)問題は、あなたが実際にフェードインする要素が<div class="student_notified">であるということである

$("div.trigger").toggle(
$(this).parent().next(); 
    $(this).parent().next().animate({opacity:1.0}); 
}, 
function() { 
    $(this).parent().next().animate({opacity:0.3}); 
    }); 
} 
); 
+0

私は実際にはまったく同じ結果でそれを試しました...うーん、本当にこれの底に到達したい。 – Mikey

+0

あなたはどのブラウザを使用していますか? – Semyazas

+0

Firefox、Safariと同じ結果 – Mikey