javascript - Pourquoi une erreur se produit-elle concernant l'événement onclick d'un élément en ligne?
天蓬老师
天蓬老师 2017-07-05 10:37:03
0
11
2106

Une erreur sera signalée lorsque le clic sur Afficher n'est pas défini

Pourquoi simplement mettre la fonction show() en dehors de $(function(){}) ?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

répondre à tous(11)
学霸

onclick="show()" exécute window.show()

typecho

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

$(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

Peter_Zhu

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

typecho

Mettez la définition de la méthode show au-dessus du menu de gauche

扔个三星炸死你

Besoin de confier~~

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!