2

ページ上で単独で正常に動作するようになる 2 つの Jquery 関数がありますが、両方を同時に使用した場合は動作しません。他のページで同様のコードがうまく機能しているため、何が間違っているのかわかりません。

最初の関数:

$(document).ready(function()
{
   $("#add-questions").click(function() {$("#extra-questions").fadeIn(800);});
});

2 番目の関数:

$(document).ready(function()
{
   if($PHPTRIGGER == true)
   {
      $("#pop-text").html("Message sent.");
      $("#pop").show();
      setTimeout(function() {$("#pop").animate( {height: "hide", opacity: "hide"}, "medium");}, 4000);
   }
});

「$PHPTRIGGER」は、Jquery に渡す php 変数です (StackOverflow では実際の php を入れることができないため、そのようにマークしました)。

両方の関数を同じ「ドキュメント対応」に入れてみましたが、順序を入れ替えてみましたが、うまくいきません。

何かご意見は?

ありがとう。

アップデート:

これは、クリック イベントに応答しない最初の関数です。2 番目の機能 (フォーム送信にリンクされている) が実行された後にのみ機能します。なぜそうなのか、今でも不思議です。

最終更新:

Firebug の問題を解決しました。PHP 経由で渡された PHPTRIGGER を空白の値で初期化する必要があったか、最初の関数が失敗しました。その関数は PHP をまったく取り込まないので、実際にはちょっとおかしいです。基本的に、2 番目の関数の (厳密な) 構文エラーにより、最初の関数が失敗しましたが、2 番目の関数自体は正常に動作していました。

4

1 に答える 1

1

それらをテストページに配置すると、それらは機能します。

  • ポップは 4 秒後に非表示になります。

  • pop-text には「メッセージが送信されました」と表示されます。

  • #add-questions をクリックすると、#extra-questions div がフェードインします (初期表示: なしと仮定)

それ以外の何かが必要な場合は、おそらく自分のコードを見て目がかすんだだけです (おそらく、1 つの場所で #pop を使用し、別の場所で #pop-text を使用するのではなく、両方の場所で #pop を使用したかったのでしょうか?)

他に試すこと: Chrome で実行し、JS コンソールでエラーを確認します (現在のデバッガーでエラーが表示されず、実行が停止しているだけの場合)。HTML をチェックして、参照されている ID が存在することを確認してください。CSS をチェックして、初期値が正しいことを確認してください。$PHPTRIGGER 変数が正しく渡されていることを確認してください。

詳しい情報をお持ちの場合、または何かわかったことがありましたらお知らせください。

于 2010-02-14T17:51:06.867 に答える