3

これに似た他の質問を見ましたが、答えが見つかりませんでした。

doStuff <body onload="doStuff()">() JavaScript 関数の呼び出しを停止しました。に置き換えてみまし<body onload="doStuff()"><body onload="alert('Test');">が、アラートが正常に作成されます。

次に、同じアラートを doStuff() 関数のすぐ内側に配置しようとしました (そして、オンロードを元に戻して doStuff() を呼び出しました) が、アラートは表示されませんでした。

これが起こる理由はありますか?また、これが機能してから機能しないまでの間、コードを変更していないことはほぼ確実であることに注意してください (信じられないかもしれませんが、それは本当です)。ただし、Joomla のインストールを含むサーバーからサブフォルダーを削除しました。

4

4 に答える 4

0

インライン呼び出しから離れて、意図したとおりに jQuery を利用するようにしてください。スタイルとスクリプト ロジックを分離することにより、(デバッグが容易になることは言うまでもありません) 本当に良い作業方法です。

負荷のあるボディには、これを使用します。

$(document).ready(function () {
    doStuff();
});

またはさらに短縮することもできます

$(function () {
    doStuff();
});
于 2012-09-03T16:41:18.217 に答える
-2

キャッチされなかった構文エラーの問題 (元の投稿のコメントを参照) は、PHP 配列を JavaScript 配列に変換しているときに、何かがうまくいかなかったことです。つまり、奇妙な文字が追加されていました。DIY PHP-array-to-JS-array コードを次のコードに置き換えることで、これを解決しました。

<?php
 $js_array = json_encode($resultsArray);
 echo "var jsResultsArray = ". $js_array . ";\n";
?>

これは、記事の見出しの質問とは直接関係ありませんが、根本的な問題でした。

于 2012-09-05T11:11:22.590 に答える