2016-05-06 9 views
0

私はあなたのonclickイベントでこれを行う方法を参照してください。How do you override inline onclick event?要素にバインドされたクリックイベントを無効にする方法はありますか?

は、しかし、私は無効/削除したい特定のHTML要素にバインドしているようだイベントがあります。ここで

は、それがjQueryを使ってバインドされている方法です。私は上記のSEのリンクを使用して

$('.play-control').bind('click', function(evt){ 
     player.play(); 
    }); 

は、元の結合を「切り離す」しません。 onclickイベントだけで動作するようです。

どうすればJavascript(またはjQuery)でイベントバインディングを「バインド解除する」ことができますか?

+0

あなたは「( '$を使用して、上記のすべての' click'のイベントを削除することができ好ましいです。あなたはあなたのイベントをバインドすることができます([jQuery.off](http://api.jquery.com/off/)の記事を読んでください) –

答えて

1

あなたはすべてclickハンドラがunbindを使用したり、jQueryの、offのより最新のバージョンでjQueryを使ってフックアップバインド解除することができます

$('.play-control').unbind('click'); 
// or 
$('.play-control').off('click'); 

しかし、あなたがいることをフックにコードを変更することができない限り、 jQueryの内部データ構造を掘り下げずに特定のものをアンフックすることはできません。これは、ドットリリース間で予告なしに変更することができます。

1.名前の関数::

それをフック:

function playClick(evt){ 
    player.play(); 
} 
$('.play-control').on('click', playClick); // Or use `bind` 

あなたそのコードを変更することができる場合

、ここであなただけのそのハンドラをターゲット可能性は二つの方法があります引き離し:

$('.play-control').off('click', playClick); // Or use `unbind` 

2.使用"イベントの名前空間":

それをフック:それをアンフック

$('.play-control').on('click.play', function(evt){ // Or use `bind` 
    player.play(); 
}); 

$('.play-control').off('click.play'); // Or use `unbind` 

.playclickに加えます。ドキュメントの

詳細:on、.bindを取り付けoff

0

イベントハンドラ())(.unbindで除去することができます。 (jQuery 1.7では、.on()および.off()メソッドが よりも優先され、要素のイベントハンドラをアタッチして削除します)最も単純なケースでは、引数なしの .unbind 要素:jQueryの、offonの使用によると

http://api.jquery.com/unbind/

$(document).bind('click', '.play-control', function(evt){ 
     player.play(); 
    }) 

    $('.play-control').off('click'); 
関連する問題