1

私の小さなコードが思い通りに動かないという問題があります。最初にコードを投稿します。

$(function() {

$(document).ready(function(){ 
    if( $( "#skillelementwithme" ).hasClass( "skillelement_collapsed" ) )
    {
        $( "#skillelementwithme" ).click(function() {
            $( "#skillelementwithme" ).toggleClass( "skillelement_active_withme", 500 );
            $( "#skillelementwithyou" ).fadeTo( 1000, 0 );
    });
    }
    else if (( "#skillelementwithme" ).hasClass( "skillelement_active_withme" ))
    {
        $( "#skillelementwithme" ).click(function() {
            $( "#skillelementwithme" ).toggleClass( "skillelement_collapsed", 500 );
            $( "#skillelementwithyou" ).fadeTo( 1000 , 1 );
    });
    }
})
});

今、fadetotransparent は完全に正常に動作しますが、「skillelementwithyou」クラスをフェードバックして不透明にすることはできません。たぶん、これらの関数で絶対に間違っていることを理解しました。皆さんが私を助けてくれることを願っています。おそらくそれは、私が自分自身を嫌いになるほど小さなものです。

4

1 に答える 1

1

http://jsfiddle.net/isherwood/pmX7z/

$(function () {
    $("#skillelementwithme").click(function () {
        $("#skillelementwithme")
            .toggleClass("skillelement_active_withme skillelement_collapsed");
        $("#skillelementwithyou").fadeToggle();
    });
});

あなたの間違いのいくつか:

$(function() {$(document).ready(function(){は基本的に同じなので、1 つを取り除くことができます。

( "#skillelementwithme" )は無効なセレクターです (jQuery オブジェクト参照がありません$)。

ステートメントclick()内のラッピング。ifJS 解析時にifが読み取られ、返さtrueれる部分はそれを含む関数へのアクセスを提供しますが.click()、他の ( false) は無視され、アクセスできません。if逆の方法 (ハンドラー内でロジックを渡すclick) は、すべてのクリック イベントでステートメントをチェックしながら、イベントを存続させるのに役立ちます。

.toggleClass( "skillelement_collapsed", 500 );toggleClass は時間引数を受け入れません。アニメーションではありません。

于 2014-07-31T19:48:26.567 に答える