2011-08-01 8 views

Répondre

2

Chaque événement peut être déclenché par programme, il suffit d'utiliser la version sans rappel de celui-ci.

Exemple:

$('#button').click(function() { alert('event hanlder'); }); 

$('#button').click(); // generate the event 

A propos de votre deuxième question, il devrait y avoir aucune différence entre les gestionnaires d'événements natifs et jQuery.


Une chose qui est propre est bien que jQuery lie this à l'élément qui a reçu l'événement, à l'intérieur du rappel (cela ne se produit pas dans les gestionnaires d'événements natifs):

$('#button').click(function() { alert(this); }); // here 'this' == document.getElementById('button'); 

Attention: l'élément référencé par this n'est pas "jQuery augmenté". Si vous voulez le traverser ou le modifier avec jQuery, vous devrez faire quelque chose comme var $this = $(this);

0

Vous pouvez déclencher n'importe quel événement par programmation. Mais la plupart des événements ne peuvent pas être simulés comme l'événement naturel en utilisant des déclencheurs programmatiques.

// pour déclencher un événement de clic sur un bouton

$("buttonSelector").trigger("click"); 
0

D'abord, pour des raisons évidentes, vous ne pouvez pas déclencher l'événement ready. Cela dit, les événements déclenchés par trigger() se comportent de la même manière que s'ils avaient été déclenchés par l'utilisateur. En particulier, les gestionnaires d'événements sont appelés dans le même ordre. La seule différence que je connaisse est que les événements déclenchés n'ont pas fait exploser l'arborescence DOM dans les anciennes versions de jQuery (ce comportement a été corrigé dans la version 1.3).

1

Vous devez connaître les différences entre trigger et triggerHandler dans jQuery.

déclencheur

trigger tente de reproduire l'événement naturel le mieux possible. Le gestionnaire d'événement de l'événement en cours de déclenchement est exécuté, mais les actions du navigateur par défaut ne seront pas toujours répliquées exactement. Par exemple $('a#link).trigger('click'); exécutera la fonction javascript liée au gestionnaire d'événements liens click, mais ne redirigera pas le navigateur vers le href de l'ancre, comme le ferait un clic normal. EX: http://jsfiddle.net/AxFkD/

Toutes les formes courtes de l'appel trigger se comportent exactement comme trigger IE. click(), mouseup(), keydown(), etc

triggerHandler

triggerHandler empêche jaillissant (EX.http://jsfiddle.net/LmqsS/), il évite le comportement par défaut du navigateur et exécute simplement le rappel des événements, et il renvoie la valeur de retour du gestionnaire d'événements au lieu d'un objet jQUery pour le chaînage.

Vous devez également savoir que trigger affecte tous les éléments correspondants par un sélecteur, mais triggerHandler affecte uniquement la première EX: http://jsfiddle.net/jvnyS/

Questions connexes