0

Web サイトの上部に、閉じるボタンのあるアラートがあります。閉じるボタンに使用される jQuery は次のとおりです。

/* CLOSE ALERT BAR WITH BUTTON */
$('a.ctp-alert').click(function () {
$("div.ctp-alert").slideUp();
});

それ自体はうまく機能していますが、5000 ミリ秒後にこの DIV をスライドさせる別のスクリプトも追加しようとしています。私が使用しているjQueryは次のとおりです。

/* FADE OUT ALERT BAR AUTOMATICALLY */
$("div.ctp-alert").delay(5000).slideUp(500);

両方のスクリプトは単独で動作しますが、これらのスクリプトを両方一緒に使用すると、閉じるボタンが機能しなくなります。両者が干渉しているように見える。

これらを連携させるためのアイデアはありますか?前もって感謝します。

4

1 に答える 1

1

.delay()を使用してタイマーをキャンセルできないため、残念ながらここでは使用できません$.delay

代わりに setTimeout を使用して記述します (もう少し醜い)

var timers = {};
$('a.ctp-alert').click(function () {
    $("div.ctp-alert").slideUp();
    clearTimeout(timers.hider);
    timers.hider = null;
});

timers.hider = setTimeout(function() {
   $("div.ctp-alert").slideUp(500);
   timers.hider = null;
}, 5000);
于 2013-11-11T22:29:15.287 に答える