La fonction ci-dessous est appelée page prête et est conçue pour imiter les clics via différents liens d'ancrage et pour déclencher les méthodes liées de ces ancres afin de reproduire le même DOM qui serait configuré en cliquant manuellement sur les mêmes liens.Comment exécuter des déclencheurs d'événements et leurs méthodes liées de manière synchrone à l'aide de jQuery?
function useAnchor() {
var uri = document.location.toString();
if (uri.match('#')) {
var anchor = '#' + uri.split('#')[1];
$('.links a[href="/' + anchor.split('/')[0] + '/"]').click();
$('.links a[href="/' + anchor.split('/')[0] + '/' + anchor.split('/')[1] + '/"]').click();
}
}
Parmi les deux déclencheurs d'événement, le premier exécute avec succès la méthode liée. Toutefois, l'ancre cible du second déclencheur d'événement n'existe pas tant que la méthode du premier événement n'est pas terminée, car elle insère l'ancre cible du second événement dans le DOM. Le deuxième déclencheur échoue, et ma seule supposition est que cela est dû au fait de ne pas pouvoir trouver son point d'ancrage cible, suggérant ainsi que le premier déclencheur n'est pas complètement terminé au moment du second déclenchement. Je n'aurais pas pensé que c'était le cas - ou est-ce que mon code fonctionne d'une manière ou d'une autre dans plusieurs threads? En bref, j'ai besoin de quelqu'un pour confirmer que les déclencheurs et leurs méthodes sont exécutés de manière complètement synchrone, donc je sais si je suis à la recherche d'un bug au mauvais endroit. Merci d'avance.
J'ai complètement oublié que j'avais un appel asynchrone ajax en cours d'exécution dans le premier déclencheur, d'où le problème! Merci pour la réponse de toute façon. – tjbp