2010-03-07 4 views
1

J'ai lu que la nouvelle méthode de délégation peut attacher plus d'un événement à un gestionnaire, mais je ne l'ai pas vu en pratique. Quelqu'un pourrait taper un code pour cela s'il vous plaît.Joindre un délégué JQuery pour plusieurs événements à un gestionnaire

J'ai essayé:

$("body").delegate("input", "mouseup", "mouseover", function() { 
      $(this).after("<p>Another paragraph!</p>"); 
     }); 

et en annexe le paragraphe que sur mouseup. Je suis confus.

Répondre

2

Utilisez un séparateur d'espace pour des événements comme celui-ci:

$("body").delegate("input", "mouseup mouseover", function() { 
    $(this).after("<p>Another paragraph!</p>"); 
}); 

Vous avez probablement voulu dire pour sélectionner <input> éléments, j'ai changé ce qui précède, corrigez-moi si vous vouliez dire autrement.

Vous pouvez également utiliser .bind() comme ceci:

$("body input").bind("mouseup mouseover", function() { 
    $(this).after("<p>Another paragraph!</p>"); 
}); 

Je trouve cela plus facile à lire, mais quel que soit votre bateau flotte.

+0

(types || "") .split est pas une fonction – XGreen

+0

oui (commentaire nuked) :-) – Pointy

+0

@XGreen - Correction, oublié vous n'êtes pas contraignant , ce qui est plus simple dans ce cas, je vais ajouter un exemple –

0

La référence .delegate() | jQuery dIt second paramètre:

Une chaîne contenant un ou plusieurs types d'événements JavaScript séparés par des espaces, tels que « cliquez sur » ou « keydown, » ou les noms d'événements personnalisés.

Par conséquent, dans votre cas:

$("body").delegate("input", "mouseup mouseover", function() { 
      $(this).after("<p>Another paragraph!</p>"); 
     }); 
Questions connexes