die() 関数は、一致する要素にバインドされた 1 つ以上のイベントの イベント処理 関数を削除するために使用されます。
die() 関数は主に、live() 関数によってバインドされているイベント処理関数のブロックを解除するために使用されます。
この関数はjQueryオブジェクト(インスタンス)に属します。
構文
この関数は jQuery 1.3 で追加されました。jQuery 1.7 からは廃止され、jQuery 1.9 で削除されました。主に以下の 2 つの使用形態があります:
使用方法 1: jQuery 1.4.1 では、パラメーターの指定なしを新たにサポートしました。
jQueryObject.die( [ events [, handler ]] )
現在のセレクターに一致する要素の events イベントにバインドされているイベント ハンドラー関数 handler を削除します。
使用法 2: jQuery 1.4.3 では、この使用法が新たにサポートされました。
jQueryObject.die(eventsMap)
使用法のバリエーション 1 は、複数のイベント タイプの複数のイベント ハンドラーを同時に削除するために使用されます。 eventsMap はオブジェクトであり、各属性はメソッド 1 のパラメーター イベントに適用され、値はメソッド 1 のパラメーター ハンドラーに適用されます。
パラメータ
パラメータの説明
events オプション/文字列タイプ スペースで区切られた 1 つ以上のイベント タイプと、オプションの namespace (「click」、「focus click」、「keydown.myPlugin」など)。
handler 関数タイプで指定されたオプション/イベント ハンドラー関数。
eventsMap Object classtype は Object object であり、その各属性はイベント タイプとオプションの名前空間 (パラメーター イベント) に対応し、属性値はバインドされたイベント処理関数 (パラメーター ハンドラー) に対応します。
namespace ".foo"、".myPlugin" などの String 型で指定された名前空間。
パラメータハンドラが省略された場合、要素に一致する指定されたタイプのイベントにバインドされているすべてのイベントハンドラが削除されます。
die() 関数を呼び出す現在の jQuery オブジェクトのセレクターは、 live() 関数を呼び出す jQuery オブジェクトのセレクターと一致している必要があります。
すべてのパラメータが省略された場合は、任意の要素にバインドされている任意のイベント タイプに対して、一致する要素のイベント ハンドラーを削除することを意味します。
戻り値
die()関数の戻り値はjQuery型で、現在のjQueryオブジェクトそのものを返します。
実際、die()関数のパラメータはすべてフィルタリング条件であり、すべてのパラメータ条件に一致するイベント処理関数のみが削除されます。パラメータが多いほど、より多くの条件が存在し、削除される範囲は小さくなります。
例と説明
次の初期 HTML コードを参照してください:
<input id="btn1" type="button" value="点击1" /> <input id="btn2" type="button" value="点击2" /> <a id="a1" href="#">CodePlayer</a>
まず、イベントを上記のボタンと 要素にバインドし、次に die() 関数を使用してイベントのバインドを解除します。コードは次のとおりです。 :
function btnClick1(){ alert( this.value + "-1" ); } function btnClick2(){ alert( this.value + "-2" ); } var $buttons = $(":button"); // 为所有button元素的click事件绑定事件处理函数btnClick1 $buttons.live( "click", btnClick1 ); // 为所有button元素的click事件绑定事件处理函数btnClick2 $buttons.live( "click", btnClick2 ); // 为所有a元素绑定click、mouseover、mouseleave事件 $("a").live( "click mouseover mouseleave", function(event){ if( event.type == "click" ){ alert("点击事件"); }else if( event.type == "mouseover" ){ $(this).css("color", "red"); }else{ $(this).css("color", "blue"); } }); // 移除所有button元素的click事件绑定的事件处理函数btnClick2 // 点击按钮,只执行btnClick1 $buttons.die( "click", btnClick2 ); // 移除所有button元素的click事件绑定的所有事件处理函数(btnClick1和btnClick2) // 点击按钮,不会执行任何事件处理函数 // $buttons.die("click"); //注意: $("#btn1").die("click"); 无法移除btn1的点击事件,调用die()函数的jQuery对象的选择器与调用live()函数的jQuery对象的选择器必须一致。 // 移除所有a元素的任何事件绑定的所有处理函数 // $("a").die( );
さらに、die() 関数は、指定された名前空間のイベント バインディングのみを削除することもできます。
りー以上がjQuery.die() 関数の使用法の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。