J'ai l'habitude de lier et de vivre, mais je n'ai pas l'habitude de déléguer...
La prise en charge de la liaison d'événements à des éléments de balise générés dynamiquement peut être en direct et par délégation, mais la nouvelle version ne prend plus en charge la diffusion en direct, uniquement par délégué
Delegate est vraiment spécial, différent des autres styles de liaison d'événements.
J'ai trébuché parce que j'étais habitué au style de liaison précédent.
Pour faire simple, c'est de la négligence.
La méthodedelegate() ajoute un ou plusieurs gestionnaires d'événements à l'élément spécifié (un élément enfant de l'élément sélectionné) et spécifie la fonction à exécuter lorsque ces événements se produisent.
Les gestionnaires d'événements utilisant la méthode délégué() s'appliquent aux éléments actuels ou futurs (tels que les nouveaux éléments créés par des scripts).
Grammaire
$(selector).delegate(childSelector,event,data,function)
Paramètres | Description |
---|---|
childSelector | Obligatoire. Spécifie un ou plusieurs éléments enfants auxquels les gestionnaires d'événements sont attachés. |
événement |
Obligatoire. Spécifie un ou plusieurs événements à attacher à l'élément. Plusieurs valeurs d'événements séparées par des espaces. Doit être un événement valide. |
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...)
以上所述就是本文的全部内容了,希望大家能够喜欢。