1

jquery関数内でユーザー定義関数を呼び出そうとしていますが、これを試してみました:

function close_quote_bar() {
    alert('oh hai');
}


if($('#sliding_quote:visible')) {

    $('#sliding_quote').slideUp();
    $('#trans_div').animate({opacity: 0.0}).css('display','none').close_quote_bar;

}

この

//Function to close quote bar
function close_quote_bar() {
    alert('oh hai');
}

$('#get_quote_bar img').click(function() {                          
    if($('#sliding_quote:visible')) {               
        $('#sliding_quote').slideUp();
        $('#trans_div').animate({opacity: 0.0}).css('display','none').close_quote_bar;

    }               
});

あまり運がありません!close_quote_bar を呼び出しても何も起こらないか、Object is missing method エラーが発生します。

皆さんが私を正しい方向に向けてくれることを願っています私はこれに本当に苦労しています

4

5 に答える 5

2

次のようなものが必要だと思います:

$('#sliding_quote:visible').slideUp( function(){
    $('#trans_div').css('display','none');
    close_quote_bar();
} );

スライド アップ コールバックを使用して、オブジェクトを何も表示しないように設定し、関数を実行します。このコードでは、代わりにセレクターを使用して可視要素のみに影響を与えることで、if ステートメントも廃止しています。

于 2013-02-06T23:33:06.200 に答える
0

関数が呼び出されていたことが判明し、スコープなどの問題ではありませんでした。

スクロール (.scroll) で実行されていた別の関数が関数と競合していたため、予期せず動作し、実行されていないように見えました。

于 2013-02-07T07:28:57.887 に答える
0

@lauencekの回答に基づいています。

$('#sliding_quote:visible').slideUp( function(){
    $('#trans_div').fadeOut( function(){
      close_quote_bar();
    });
});

close_quote_bar()これはのコールバックとして実行されますfadeOut

于 2013-02-06T23:46:49.357 に答える
0

コードのこの行を変更する必要があります

$('#trans_div').animate({opacity: 0.0}).css('display','none').close_quote_bar;

このように呼び出す必要があります

$('#trans_div').animate({opacity: 0.0}).css('display','none');
close_quote_bar();

最後に、アニメーションのアニメーションが終了した後に closequotebar をトリガーするには、このコードを使用します。function() が 3 番目のパラメーターにあることに注意してください。

$('#trans_div').animate({opacity: 0.0}, 400, function(){
    $(this).css('display','none');
    close_quote_bar();
});

animate と slideUp の両方がパラメータとして function() ブロックの追加をサポートしているため、アニメーションが終了した後に関数を呼び出すことができます http://api.jquery.com/animate/ 「完全な」部分を参照してください

于 2013-02-06T23:33:57.403 に答える
0

これを試してください:

$('#trans_div').animate({opacity: 0.0}, 400, function(){
    $(this).css('display','none');
    close_quote_bar();
});
于 2013-02-06T23:34:13.027 に答える