2017-10-23 4 views
-1

私は、ゲームでarcticlesを含むビューを管理し、メモリの過負荷を防ぎ、新しいウィンドウで開いている、または現在のページをリロードする(チェックボックス付き)、私はこのコードを作った。ユーザが記事をクリックすると(それぞれが "flashgame"というクラスを持つ)、ユーザの選択に応じて、ゲームに行き、現在のページをリロードするか、open別のウィンドウで、ゲームをプレイ これは私のコードです:jquery .onはクリックイベントを蓄積する

jQuery(document).on('click', '.flashgame', function() { 
    console.log(this); 
    let denom = jQuery(this).find('.urlGame').data('denom'); 
    let val = jQuery(this).find('.urlGame').data('val'); 
    if (denom != "") { 
    let gamear = denom.toString().split(','); 
    let orderset: any[] = gamear; 
    if (orderset.length > 1) { 
     that.multidenoms = orderset.sort((a, b) => { return a - b; }); 
     that.gameId = val; 
     console.log("modalflash is showing"); 
     that.modalflash.show(); 
    } 
    else { 
     that.goToFlash(val, gamear); 
    } 
    } 
    else { 
    that.goToFlash(val); 
    } 
}); 

、これは記事です:

enter image description here

が、何らかの理由で、私はこのプロジェクトでこの変更を行ったときに、ページは、例えば、クリック数を蓄積されています:

ハードリロードをし、「クリック」の数がゼロで開始し、私は行きます別のページに移動してから戻ると、クリックが1つ増えていきます。

どうすればよいですか?この「クリック」の過負荷を防ぐ回避策はありますか?

答えて

1

私がしたいのは、イベントハンドラを再バインドするときに.offの前に.offを使用することです。 だからこのようなもの:

jQuery(document).off('click', '.flashgame').on('click', '.flashgame', function() { ... 
+0

これは私の期待通りに働いた、ありがとう! – Lrawls