ホームページ >ウェブフロントエンド >jsチュートリアル >jQueryバインディングイベントリスナーbindとイベントリスナー削除unbind_jqueryの使用例を詳しく解説
この記事の例では、jQuery バインディング イベント リスナー バインドの使用法とイベント リスナー アンバインドの削除について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
ここではそれぞれ、オプションのパラメータとしてbind(eventType,[data],Listener)//dataを使用します。one()メソッドでバインドされたイベントは、一度トリガーされた後に自動的に削除されます。unbind(eventType,Listener),
例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>unbind(eventType,listener)</title> <style type="text/css"> <!-- img{ border:1px solid #000000; } input{ border:1px solid #570000; } --> </style> <script language="javascript" src="jquery.min.js"></script> <script language="javascript"> $(function(){ var fnMyFunc1; //函数变量 $("img") .bind("click",fnMyFunc1 = function(){ //赋给函数变量 $("#show").append("<div>点击事件1</div>"); }) .bind("click",function(){ $("#show").append("<div>点击事件2</div>"); }) .bind("click",function(){ $("#show").append("<div>点击事件3</div>"); }); $("input[type=button]").click(function(){ $("img").unbind("click",fnMyFunc1); //移除事件监听myFunc1 }); }); </script> </head> <body> <img src="11.jpg"> <input type="button" value="移除事件1"> <div id="show"></div> </body> </html>
このテスト コードをもう一度見てください:
<body> <input type="button" name="aaa" value="点击我"> <input type="checkbox" name="checkbox1"> </body>
JQuery コード:
$().ready(function(){ for (var i = 0; i < 3; i++) { $("input[type='button']").click(function(){ alert("aaaa"); }); } }
alert("aaaa") は 3 回実行されます。イベントがネストされた場合、そのような状況を見たくない場合は、この時点で上位レベルのイベントを無効にする必要があります。問題を解決するには関数のバインドを解除します。
機能の紹介:
for (var i = 0; i < 3; i++) { $("input[type='button']").unbind("click"); $("input[type='button']").bind("click", function(){ alert("aaa"); }); }
alert("aaa"); は 1 回だけ実行されます。
bind() メソッドは、選択した要素に 1 つ以上のイベント ハンドラーを追加し、イベントの発生時に実行する関数を指定します
unbind() メソッドは、選択した要素のイベント ハンドラーを削除します。イベントの発生時に、すべてまたは選択したイベント ハンドラーを削除したり、指定された関数の実行を終了したりする機能。
event はイベント タイプです。タイプには、blur、flcus、load、resize、scroll、unload、click、dblclikc、mousedown、mouseup、mousemove、mouseover、mouseout、mouseenter、mouseleave、change が含まれます。 、select、submit、keydown、keypress、keyup、error など、もちろんカスタム名にすることもできます。
data はオプションのパラメーターであり、event.data 属性値はイベント オブジェクトの追加データ オブジェクトに渡されます。
関数はバインディングに使用される処理関数です。
文法:
$(selector).bind(event,data,function)
イベントと関数は、説明のために次のコード スニペットを指す必要があります:
例 1: p のすべてのイベントを削除します
$("p").unbind("click",test); $("p").bind("click",test);
注: .bind() を定義するには、どのイベントと関数を指定する必要があります
ここで簡単なデモを見てみましょう。div 全体にクリックによる折りたたみと展開のイベントがあります。リンクをクリックしても div のクリック イベントをトリガーしたくない場合は、リンクがクリックされたときに div のクリック イベントを無効にする必要があります。ここでは I link Mouseenter イベントを使用して、div イベントのバインドを解除し、削除します。この時点ではまだ終わりではありません。マウスがリンク領域に入ると、div のクリック イベントが削除されます。また、マウスがリンク領域から移動したときに、div のクリック イベントを復元する必要があります。リンクエリア。コードは次のとおりです:
$(function(){ var Func = function(){ $(".com2").toggle(200); } $(".test").click(Func) $(".test a").mouseenter(function(){ $(".test").unbind(); //删除.test的所有事件 }); $(".test a").mouseleave(function(){ $(".test").bind("click",Func); //添加click事件 }); });
event はイベントタイプです
…
function はバインドに使用される処理関数です。
jQuery イベントに関連するさらなるコンテンツに興味のある読者は、このサイトの特別トピック「jQuery の共通イベントの使用法とテクニックの概要」
をチェックしてください。この記事が jQuery プログラミングのすべての人に役立つことを願っています。