バックグラウンドでの削除を行っているとき、クリックしてタグを削除すると、わかりやすいプロンプト ボックスがポップアップ表示されることを期待しています。例:
コードはどのように記述すべきですか?このような?
<!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='confirmdelete(2)'>删除</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='return confirmdelete(2)'>删除</a>";?>
結果は実行成功です!それは間違っていると言う人もいますが、phpの実行順序はjsよりも前であるべきだと言いましたよね?これは上記と変わりません。
次に、window.onload メソッドの制約により、js が最後に実行されることに注意してください。この制約を削除すると、この関数
は js では単なるステートメントであることがわかります。ただの文関数だと先にコンパイルされるので、この時にphpのaタグを実行すると、呼び出したい関数がプリコンパイルされているので呼び出すことができます。
以上がタグがjsメソッドを呼び出せない問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。