用户完成一个测验表格并点击“分数测验”链接。想要的是计算分数,通过 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 调用工作正常。我在Wordpress.org 故障排除论坛上添加了一个帖子,以防有人不访问 stackoverflow。
注意 3:我使用 wordpress “twentyeleven”的标准主题对此进行了测试。发生了同样的错误。我用完了可供测试的选项。