Fait fonctionner avec succès en utilisant les 2 méthodes: l'encapsulation de Stephan202 et les écouteurs d'événements multiples. J'ai 3 onglets de recherche, nous allons définir leur id texte d'entrée est dans un tableau:
var ids = new Array("searchtab1", "searchtab2", "searchtab3");
Lorsque le contenu des changements de searchtab1, je veux mettre à jour searchtab2 et searchtab3. At-il ainsi pour l'encapsulation:
for (var i in ids) {
$("#" + ids[i]).change(function() {
for (var j in ids) {
if (this != ids[j]) {
$("#" + ids[j]).val($(this).val());
}
}
});
}
écouteurs d'événements multiples:
for (var i in ids) {
for (var j in ids) {
if (ids[i] != ids[j]) {
$("#" + ids[i]).change(function() {
$("#" + ids[j]).val($(this).val());
});
}
}
}
J'aime les deux méthodes, mais le programmeur a choisi l'encapsulation, mais les écouteurs d'événements multiples ont également travaillé. Nous avons utilisé Chrome pour le tester.
que se passe-t-il avec la façon native? et comment le natif sait-il comment supprimer un spécifique? – SuperUberDuper
Selon le DOM niveau 3 (référence à la spécification HTML 5), les gestionnaires d'événements sont exécutés dans l'ordre dans lequel ils sont enregistrés - http://www.w3.org/TR/DOM-Level-3-Events/#event-phase et http://www.w3.org/TR/2014/REC-html5-20141028/webappapis.html#event-handler-attributes. Les gestionnaires d'événements peuvent être supprimés en transmettant une référence au gestionnaire qui a été enregistré –
@RussCam que se passe-t-il si un même gestionnaire est lié plus d'une fois suffit de dire 'jQuery ('. Btn'). On ('click', handlerClick); 'est appelé à divers endroits sans réellement' .off' il anywher? –