Maison >interface Web >Questions et réponses frontales >Analysez les raisons et les solutions pour lesquelles la méthode on de jQuery ne peut pas déclencher Ajax
Ces dernières années, Javascript et jQuery ont joué un rôle de plus en plus important dans le travail de développement front-end. Les capacités de jQuery ne se reflètent pas seulement dans ses excellentes fonctions de manipulation DOM et ses sélecteurs CSS, mais jQuery fournit également de nombreuses fonctions globales puissantes et fonctions de traitement d'événements. simplifier le flux de travail de développement front-end. La méthode on() nous apporte sans aucun doute beaucoup de commodité, mais il existe un cas particulier dans l'utilisation de cette méthode, c'est-à-dire qu'elle ne peut pas déclencher la requête Ajax. La cause première et la solution de ce problème seront présentées en détail ci-dessous. .
Tout d'abord, comprenons comment utiliser la méthode on(). La méthode on() peut accepter plusieurs paramètres, le plus important étant le premier paramètre, utilisé pour spécifier le type d'événement, c'est-à-dire à quel événement la fonction de gestion d'événements doit être liée.
Par exemple, dans l'exemple suivant, nous lions un événement click à l'aide de la méthode on().
$("button").on("click", function(){ alert("您点击了按钮"); });
Le code ci-dessus fera apparaître une boîte de dialogue après avoir cliqué sur le bouton, dans laquelle la méthode on() transmet l'événement click comme premier paramètre.
Bien sûr, la méthode on() peut également lier plusieurs événements en même temps (séparés par des virgules) et passer la fonction de gestion des événements dans le deuxième paramètre. Par exemple :
$("button").on("mouseenter mouseleave", function(){ alert("您进入/离开按钮区域"); });
Le code ci-dessus gérera simultanément les événements d'entrée et de sortie de la souris du bouton. La méthode
on() a de nombreux autres paramètres et utilisations, qui ne seront pas décrits ici. Pour une introduction plus détaillée, veuillez vous référer à la documentation officielle de jQuery. La méthode
De retour au sujet de cet article, nous discuterons ensuite du problème selon lequel la méthode on() ne peut pas déclencher de requêtes Ajax. Jetons un coup d'œil à l'exemple suivant :
$("button").on("click", function(){ $.ajax({ url: "http://www.example.com/api", type: "GET", success: function(response){ console.log(response); } }); });
Le code ci-dessus tente d'obtenir des données d'une API via une requête Ajax lorsque le bouton est cliqué, et imprime la réponse sur la console une fois la requête réussie. Cependant, lorsque nous cliquons sur le bouton, nous constatons que rien ne se passe et qu'il n'y a aucune sortie vers la console.
Après quelques recherches et tests, nous sommes arrivés à la conclusion : la méthode on() ne peut pas déclencher de requêtes Ajax !
Alors, pourquoi la méthode on() a-t-elle ce problème ? La raison en est que la méthode on() implémente en fait la requête Ajax en liant les événements DOM, et avant de transmettre les données de réponse à la fonction de traitement, elle doit d'abord stocker les données dans le nœud DOM. Cependant, jQuery ne peut pas déclencher correctement l'événement de chargement sur tous les nœuds, ce qui empêche la méthode on() de déclencher la requête Ajax.
Nous pouvons le confirmer avec le code suivant :
$("img").on("load", function(){ console.log("图片加载完毕"); });
Le code ci-dessus écoutera l'événement de fin de chargement de l'image et imprimera un message lorsque l'événement est déclenché. Cependant, lorsque nous essayons de charger une image générée dynamiquement (comme <img src="http://www.example.com/1.png">
), nous constaterons que ce code ne fonctionne pas et qu'aucune information n'est envoyée à la console.
Alors, quelle méthode devons-nous utiliser lorsque la méthode on() ne peut pas déclencher une requête Ajax ? La réponse est d'utiliser la fonction globale de jQuery - $.ajax(). La méthode
$.ajax() est une fonction de bas niveau qui peut implémenter différents types de requêtes Ajax en lui passant des paramètres. Par exemple :
$("button").on("click", function(){ $.ajax({ url: "http://www.example.com/api", type: "GET", success: function(response){ console.log(response); } }); });
Le code ci-dessus appellera directement la fonction $.ajax() et obtiendra les données API via la méthode GET. De plus, la fonction $.ajax() a de nombreux autres paramètres et utilisations, qui ne seront pas décrits ici. Pour une introduction plus détaillée, veuillez vous référer à la documentation officielle de jQuery.
Ce qui précède est une introduction détaillée et une solution au problème selon lequel la méthode on() de jQuery ne peut pas déclencher de requêtes Ajax. J'espère que cela pourra être utile à tout le monde. Dans le développement frontal réel, nous devons choisir la méthode appropriée en fonction de la situation réelle, faire attention à l'utilisation d'une bonne documentation et de bons moteurs de recherche et améliorer continuellement nos compétences et nos capacités.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!