ユーザーがクイズフォームに記入し、「スコアクイズ」リンクをクリックします。必要なのは、スコアを集計し、結果をjQuery ajax呼び出しを介してサーバーに送信し、ファンシーボックスにユーザー通知を表示することです。
何が起こっているのかというと、集計が行われ、ajax呼び出しが開始され、ページがリロードされます。ajax呼び出しをコメントアウトすると、fancyboxが希望どおりに表示されます。Wordpressの使用3.4.2。
何が起こっているのでしょうか?
jQuery('#checkQuiz').click(function(){
var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
// tally correct answers
var quizData = tallyScore();
// display user notice
jQuery('a#hiddenAnchor').trigger('click');
// store the data while the user is reading the results display
jQuery.ajax({
type:"post",
url:ajaxurl,
data:quizData
});
return false;
});
注1:Firebugコンソールでエラーをキャッチできました:
NS_ERROR_XPC_NOT_ENOUGH_ARGS: Not enough arguments [nsIDOMLocation.replace]
報告されたファイルはjQuery.jsであり、バージョン1.7.2のようです。jQueryの現在のリリースは1.8.1であることに気づきました。それが問題の一部なのかしら。
注2:このコードが子テーマのページテンプレートの一部であることを忘れました。Webアプリの他のページで行われた同様のajax呼び出しは正常に機能します。誰かがstackoverflowにアクセスしない場合に備えて、 Wordpress.orgトラブルシューティングフォーラムに投稿を追加しました。
注3:ワードプレス「twentyeleven」の標準テーマでこれをテストしました。同じエラーが発生しました。テストするオプションが不足しています。