0

私はまだjQuery/javascriptを非常に学んでいるので、ポインタや改善点は大歓迎です.

フェードアウト イベントのコールバック関数内で div を非表示にしたいのですが、うまくいきません。この書き方に何か問題があるのでしょうか。

function hide() {
    var box = $(this);
    box.children("div").children().fadeOut(500, function() {
        $(this).parent().hide("slow", "easeOutBounce");
    });
};

EasingおよびHoverIntentjquery プラグインを使用しています。

私の問題の例

4

3 に答える 3

4

コールバックが起動しています。問題は<div>、リンクを含む が非表示になっていることです。次に、 を呼び出しますslideUp()。しかし、 が非表示になった瞬間、<div>含まれている div は、スライドが終了したかのように高さを持ちます。

回避策は、ほとんど fadeOut()のリンクをスライドアップし (完全にフェードアウトしていないため、まだ高さがあります)、完全に非表示にします。

作業例:

http://jsfiddle.net/scFMx/13/

于 2011-03-03T14:06:18.583 に答える
1

発射してるみたい

box.children("div").children().fadeOut(500, function() {
    console.log($(this).parent().clone());
    $(this).parent().hide();
    console.log($(this).parent());
});

ログへの最初の呼び出し:

<div class="hidden" style="display:block; ">…&lt;/div>

ログへの 2 番目の呼び出し:

<div class="hidden" style="display:none; ">…&lt;/div>
于 2011-03-03T14:06:11.973 に答える
0

ID を指定して、すべての「これ」を置き換えてみてください。

于 2011-03-03T14:05:06.863 に答える