Maison  >  Article  >  développement back-end  >  Le problème qu'une balise ne peut pas appeler la méthode js

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

一个新手
一个新手original
2017-09-13 09:44:342094parcourir

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>";?>

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>";?>

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!

Déclaration:
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