0

私は2つの div 要素を持っています.parentDiv.childDiv

私はCSSトランジションを使用して両方をアニメーション化しています。は.childDiv最初に不透明度をアニメートし、次にトランジションエンドでアニメートし、.parentDiv高さをアニメートしてから、アラート チェックを呼び出す必要があります。

だからここにコードがあります:

    $('.childDiv').addClass('faded').on('transitionend', function(){
            $('.childDiv').off('transitionend');

            $('.parentDiv')
                .addClass('no-height')
                .on('transitionend',event, function() {
                    alert(event.propertyName);
                });
        });

問題:

2 番目のトランジションを実行した後.addClass('faded')(これは正しい)。しかし、ontransitionend の.parentDiv場合、アラートが送信された event.propertyName は「不透明度」であり、 が.childDiv遷移を終了するとすぐに起動されます。

高さが調整されたときにのみ実行したい。高さの遷移が完了すると「高さ」も警告されますが、高さの調整以外の他の遷移も読み取っているように見えます。

ここにjsfiddleがあります: http://jsfiddle.net/e9uwA/

お手伝いありがとう!

4

1 に答える 1

1

$('.childDiv').on() に event.stopPropagation() を追加するだけです

childDivのイベントはparentDivに伝播するため

于 2013-04-25T09:14:38.540 に答える