1

「閉じる」クリックイベントを実行したときに停止したい機能があります。

これの背後にある理由は、img.startクリック イベントを 2 回目に実行したときに、関数が再度呼び出され、2 回実行されているためです。

問題の機能はスライドショーであるため、ページで一度だけ実行する機能が本当に必要です。

明確にするために、 をクリックするimg.closeと、BannerSlideshow関数が停止し、実行されなくなります。

関数のクリックイベントを開始

$('img.start').click(function () {
  BannerSlideshow.Init()
});

終了機能クリックイベント

$('img.close').click(function () {
  //stop function BannerSlideshow from running
});

スライドショー機能の抜粋

var BannerSlideshow = (function () {
return {
    Init: function () {
        //slideshow functionality            
    }

質問をより具体的に更新しました。申し訳ありません。

4

5 に答える 5

1

bind () と unbind () を使用してそれを行うことができます

$('img.close').bind('click',function () {
         // your code
    $(this).unbind('click');
});

また

Off() を使用できます

$(this).off('click');
于 2013-03-08T09:59:50.613 に答える
0

ブール値で停止機能を使用しないのはなぜですか?

var running = false;

$('img.close').click(function () {
    running = true;

});

running = true の場合、stop() 関数を使用します。それ以外の場合は、スライドを開始します

ハンドラをアンバインドするより停止機能の方がいいと思う

于 2013-03-08T10:06:43.227 に答える
0

StartSlideshow 関数はどのようなものですか? スライドショーを実行するかどうかをグローバル変数で指定できると思います...

function StartSlideshow() {
    globalVariableRunSlideshow = true;
    while (globalVariableRunSlideshow) {
         /* Do some slideshowing here */
    }
}

そして、あなたのイベントは次のようなことができます:

$('img.close').click(function () {
    globalVariableRunSlideshow = false;
});
于 2013-03-08T10:07:01.763 に答える
0

これを使って:

event.stopPropagation(); 

またはon.clickを使用

を使用して殺す

$(this).off();

また

use .bind and  .unbind();

ここを参照してください: http://api.jquery.com/category/events/event-handler-attachment/

于 2013-03-08T10:00:50.837 に答える
0

off メソッドを使用できます。オフ()

(jQuery 1.7 では、要素のイベント ハンドラーをアタッチおよび削除するには、.on() および .off() メソッドが推奨されます)

$('img.close').off('click');
于 2013-03-08T10:02:03.610 に答える