Le problème qu'une balise ne peut pas appeler la méthode js

一个新手
Libérer: 2023-03-16 06:10:01
original
2144 Les gens l'ont consulté

Lorsque nous effectuons la suppression en arrière-plan, lorsque vous cliquez pour supprimer une balise, vous espérez qu'une boîte de dialogue conviviale apparaîtra ! Par exemple :

Comment le code doit-il être écrit ? Comme ça?


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script>
        window.onload=function () {            
            function confirmdelete(id) {                
                return  window.confirm("你确定要删除吗?");
            }
        }    
   </script>
</head>
<body>

</body>
<?php   
echo "<a onclick=&#39;confirmdelete(2)&#39;>删除</a>";?>
Copier après la connexion

Vous constaterez qu'une telle erreur se produit :

La fonction n'est pas utilisée ? Cela ne devrait pas l'être, ne l'ai-je pas déjà appelé en php ?

Remarque :

Les personnes qui ont écrit du front-end doivent savoir que cette méthode est exécutée une fois la page complètement chargée, alors le problème vient, PHP L'ordre d'exécution est avant js, donc lorsque php est exécuté, on constate que la méthode dans la balise a n'existe pas, car js n'a pas été exécuté à ce moment, donc cela amène la balise php a à appeler js et il y a aucune réponse.

Alors le code devient comme ça ?


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script>            
        function confirmdelete(id) {                
        return  window.confirm("你确定要删除吗?");
            }    
   </script>
</head>
<body>
</body>
<?php   
echo "<a onclick=&#39;return confirmdelete(2)&#39;>删除</a>";?>
Copier après la connexion

Le résultat est une exécution réussie ! Certaines personnes disent que c'est faux. N'avez-vous pas dit que l'ordre d'exécution de php devrait précéder js ? Ce n'est pas différent de ce qui précède ?

Ensuite, vous devez faire attention à ce moment-là. Avec la contrainte de la méthode window.onload, le js est exécuté en dernier. Ensuite, lorsque vous supprimez cette contrainte, vous constaterez que cette fonction

est juste une instruction, en js, pour les fonctions qui sont uniquement déclarées, elle sera compilée en premier, donc lorsque la balise a de php est exécutée à ce moment-là, parce que la fonction qu'elle veut appeler a été pré-compilée, elle peut être appelé.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal