Le code HTML que vous ajoutez est une chaîne et l'événement dans onclick est show(). Si la méthode d'un objet spécifique n'est pas spécifiée, elle sera par défaut la méthode globale et $(function(){}) est une fermeture.
$(function() {
leftMenu();
function show() {
alert('hhhhhhhh');
}
function leftMenu() {
var html = '<p class="show" onclick="'+show()+'">click me</dv>'
$('#box').append(html);
}
})
Appelez show() directement et il sera exécuté immédiatement. S'il est écrit comme onclick="show()", $(document).ready() est exécuté une fois le document chargé. Lorsque la structure de la page est terminée, vous. cliquez pour déclencher show (), à ce moment, vous rechercherez show() sous la fenêtre. Bien sûr, le résultat n'est pas défini. Si vous voulez vraiment l'écrire dans $(funciton(){}), vous pouvez le faire. ceci :
$(function() {
leftMenu();
/*function show() {
alert('hhhhhhhh');
}*/
function leftMenu() {
var html = '<p class="show">click me</dv>'
$('#box').append(html);
}
//做个事件委托
$('body').on('click', $('.show'), function() {
alert('aaaaa')
})
})
La fonction show se trouve à l'intérieur d'une fonction anonyme. La liaison onclick effectuera une recherche globale et ne trouvera pas les éléments définis dans la fonction anonyme
onclick trouvera la fonction personnalisée show() sous l'objet window, qui est window.shou(). . Il doit donc être placé en dehors de la fonction $(function(){}). . Par conséquent, à l'avenir, toutes les fonctions personnalisées devraient être écrites en dehors de $(function(){}), et certains traitements et appels ultérieurs devraient être placés à l'intérieur de $(function(){}) pour garantir qu'ils sont appelés une fois le document terminé. chargé
En langage clair : $(function(){}) consiste à exécuter le contenu après l'exécution du document Et vous avez ajouté la liaison après le chargement du document. Show() n'a pas été trouvé lors de l'exécution du HTML, veuillez l'adopter
En fait, il s'agit d'un problème causé par la portée de js. onclick="show()" exécute la méthode show() dans window, mais une telle méthode n'existe pas dans Window.
Parce que $(function(){}) = $.ready(), c'est-à-dire que la fonction show est déclarée après le chargement de la page, mais vous écrivez show() dans l'événement onclick en ligne, et la fonction show à ce moment, il n'y a pas encore de déclaration, elle sera donc signalée comme non définie
onclick="show()" exécute window.show()
Le code HTML que vous ajoutez est une chaîne et l'événement dans onclick est show(). Si la méthode d'un objet spécifique n'est pas spécifiée, elle sera par défaut la méthode globale et $(function(){}) est une fermeture.
Écris-le comme ça
Appelez show() directement et il sera exécuté immédiatement. S'il est écrit comme onclick="show()", $(document).ready() est exécuté une fois le document chargé. Lorsque la structure de la page est terminée, vous. cliquez pour déclencher show (), à ce moment, vous rechercherez show() sous la fenêtre. Bien sûr, le résultat n'est pas défini. Si vous voulez vraiment l'écrire dans $(funciton(){}), vous pouvez le faire. ceci :
La fonction show se trouve à l'intérieur d'une fonction anonyme. La liaison onclick effectuera une recherche globale et ne trouvera pas les éléments définis dans la fonction anonyme
onclick trouvera la fonction personnalisée show() sous l'objet window, qui est window.shou(). . Il doit donc être placé en dehors de la fonction $(function(){}). . Par conséquent, à l'avenir, toutes les fonctions personnalisées devraient être écrites en dehors de $(function(){}), et certains traitements et appels ultérieurs devraient être placés à l'intérieur de $(function(){}) pour garantir qu'ils sont appelés une fois le document terminé. chargé
En langage clair : $(function(){}) consiste à exécuter le contenu après l'exécution du document
Et vous avez ajouté la liaison après le chargement du document. Show() n'a pas été trouvé lors de l'exécution du HTML, veuillez l'adopter
En fait, il s'agit d'un problème causé par la portée de js. onclick="show()" exécute la méthode show() dans window, mais une telle méthode n'existe pas dans Window.
Parce que $(function(){}) = $.ready(), c'est-à-dire que la fonction show est déclarée après le chargement de la page, mais vous écrivez show() dans l'événement onclick en ligne, et la fonction show à ce moment, il n'y a pas encore de déclaration, elle sera donc signalée comme non définie
Mettez la définition de la méthode show au-dessus du menu de gauche
Besoin de confier~~