ホームページ  >  記事  >  バックエンド開発  >  タグがjsメソッドを呼び出せない問題

タグがjsメソッドを呼び出せない問題

一个新手
一个新手オリジナル
2017-09-13 09:44:342131ブラウズ

バックグラウンドでの削除を行っているとき、クリックしてタグを削除すると、わかりやすいプロンプト ボックスがポップアップ表示されることを期待しています。例:

コードはどのように記述すべきですか?このような?


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

次のようなエラーが発生することがわかります:

関数が使用されていませんか?そんなはずはありませんが、php ですでに呼び出していませんか?

注:

フロントエンドを書いたことがある人なら誰でも、このメソッドはページが完全にロードされた後に実行されることを知っている必要があります。その場合、php の実行順序は js よりも前なので、php が実行されるときに問題が発生します。 、この時点では js が実行されていないため、a タグ内のメソッドが存在しないことがわかり、js を呼び出すときに php の 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>";?>

結果は実行成功です!それは間違っていると言う人もいますが、phpの実行順序はjsよりも前であるべきだと言いましたよね?これは上記と変わりません。

次に、window.onload メソッドの制約により、js が最後に実行されることに注意してください。この制約を削除すると、この関数

は js では単なるステートメントであることがわかります。ただの文関数だと先にコンパイルされるので、この時にphpのaタグを実行すると、呼び出したい関数がプリコンパイルされているので呼び出すことができます。

以上がタグがjsメソッドを呼び出せない問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。