ホームページ >ウェブフロントエンド >jsチュートリアル >jQuery_jquery でのデリゲートの使用に関する問題

jQuery_jquery でのデリゲートの使用に関する問題

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

私は束縛して生きることには慣れていますが、委任することには慣れていません...

動的に生成されたタグ要素へのイベントのバインドのサポートはライブとデリゲートの可能性がありますが、新しいバージョンではライブはサポートされなくなり、デリゲートのみがサポートされます

デリゲートは他のイベント バインディング スタイルとは異なり、非常に特別です。

前のバインドスタイルに慣れていたのでつまずいてしまいました。

簡単に言えば、不注意です。

delegate() メソッドは、指定された要素 (選択された要素の子要素) に 1 つ以上のイベント ハンドラーを追加し、これらのイベントが発生したときに実行する関数を指定します。

delegate() メソッドを使用するイベント ハンドラーは、現在または将来の要素 (スクリプトによって作成された新しい要素など) に適用されます。

文法

$(selector).delegate(childSelector,event,data,function)

パラメータ 説明
childSelector 必須。イベント ハンドラーがアタッチされる 1 つ以上の子要素を指定します。
イベント

必須。要素に付加する 1 つ以上のイベントを指定します。

スペースで区切られた複数のイベント値。有効なイベントである必要があります。

data 可选。规定传递到函数的额外数据。
function 必需。规定当事件发生时运行的函数。

比如这段小代码啊

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
 $("div").delegate("button","click",function(){
  $("p").slideToggle();
 });
});
</script>
</head>
<body>
<div style="background-color:red">
<p>这是一个段落。</p>
<button>请点击这里</button>
</div>

</body>
</html>

我老写成了

$(document).ready(function(){
 $("div").delegate($("button"),"click",function(){
  $("p").slideToggle();
 });
});

子选择器不需要选择起来了..

不然就像我那样出现不知名的错误(点击会触发click,但点击其他元素也会触发click...)

以上所述就是本文的全部内容了,希望大家能够喜欢。

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