-1

Video-JS プラグインで簡単な動画ページを作成しました。動画はポップアップ モジュールで再生されます。私がやろうとしているのは、ビデオではなくビデオラッパーがクリックされるたびにこのポップアップを閉じることです。しかし、私はそうすることに失敗し、ビデオコントロールをクリックしてもポップアップが閉じます。私のコードは次のようになります。

$('.popup-video').click(function() {
    $(this).fadeOut(500);
    // Pause Video
});
$('.popup-video>div').click(function(e) {
    e.stopPropagation();
});
$('.popup-video>video').click(function(e) {
    e.stopPropagation();
});

.stopPropagation以前はトリックを行っていた方法ですが、今はそうではありません! 私は何を間違っていますか?

4

1 に答える 1

2

クリックされた要素 (イベント ターゲット) が実際にイベント ハンドラー (this) で参照されている要素であるかどうかを確認し、そうである場合にのみフェードを実行できます。これにより、子要素から伝播して関数を起動するクリックの問題を回避できます。

$('.popup-video').click(function(e) {
    if (e.target === this) $(this).fadeOut(500);
});
于 2013-08-25T15:59:53.957 に答える