ホームページ  >  記事  >  ウェブフロントエンド  >  jQueryバインディングイベントリスナーbindとイベントリスナー削除unbind_jqueryの使用例を詳しく解説

jQueryバインディングイベントリスナーbindとイベントリスナー削除unbind_jqueryの使用例を詳しく解説

WBOY
WBOYオリジナル
2016-05-16 15:19:131977ブラウズ

この記事の例では、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();

例 2: p
のクリックイベントを削除する
コードをコピー コードは次のとおりです:
$("p").unbind("click");

例 2: p 要素のクリック イベントを削除した後にトリガーされるテスト関数と、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 プログラミングのすべての人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。