特定のDOM要素からすべてのクリックイベントを削除したいどうやって? removeEventListenerがありますが、それには添付された関数が必要です。
1つのタイプのアタッチされたイベントをすべて削除する方法はありますか?
グラッツィ
回答:
回答№1は0DOM操作を支援するためにライブラリを使用しているかどうかは言いませんでしたが、jQueryを使用している場合は$(domelement).unbind( "click")のように簡単です。 ここに文書化される: http://api.jquery.com/unbind/
回答№2の場合は3
この記事はおそらく役に立つでしょう:
http://www.computerhowtoguy.com/how-to-use-the-jquery-unbind-method-on-all-child-elements/
特に、1つの部分は再帰関数ですすべてのクリックイベントを削除します。 jQueryを使用してクリックイベントが作成された場合、jQueryはクリックイベントを削除します。この記事で与えられた関数は、jQueryで作成されたものとそうでなかったものの両方を削除します。与えられた関数は次のとおりです:
function RecursiveUnbind($jElement) {
// remove this element"s and all of its children"s click events
$jElement.unbind();
$jElement.removeAttr("onclick");
$jElement.children().each(function () {
RecursiveUnbind($(this));
});
}
あなたはこのような関数を呼び出すでしょう:
RecursiveUnbind($("#container"));
その関数はjQueryオブジェクトのパラメータを取りますが、要素のIDの名前として文字列を渡すように簡単に変更できます。
答え№3の2
残念なことに、DOM仕様には、リスナー関数を知らずにイベントリスナーを一覧表示または削除できるメソッドはありません。
あなたができることは、同じタイプの新しい要素を作成し、すべてのプロパティをコピーし、元の要素から新しい要素に子を移動することです。
回答№4の場合は0
すべてのイベントリスナーを削除する場合は、空の関数をonclickイベントに割り当てる方法はありますか?
<YOUR_HTML_ELEMENT>.onclick=function(){};