使用WP Pro测验时出现jQuery错误

时间:2013-02-13 09:44:53

标签: jquery wordpress-plugin

刚刚添加WP Pro Quiz并在本地添加了一个测验来测试它。当我点击按钮加载测验时,它根本没有加载,我收到以下错误:

Uncaught TypeError: Object [object Object] has no method 'wpProQuizFront'

错误所在的jQuery之后加载的脚本是:

<script type="text/javascript">
jQuery(document).ready(function($) {
    $('#wpProQuiz_1').wpProQuizFront({
Uncaught TypeError: Object [object Object] has no method 'wpProQuizFront'
        quizId: 1,
        mode: 0,
        globalPoints: 1,
        timelimit: 0,
        resultsGrade: [0],
        bo: 0,
        json: {"1":{"type":"cloze_answer","id":1,"points":1,"correct":[]}}  });
});
</script>   

从第371行的文件WpProQuiz_View_FrontQuiz.php加载:

<script type="text/javascript">
jQuery(document).ready(function($) {
    $('#wpProQuiz_<?php echo $this->quiz->getId(); ?>').wpProQuizFront({
        quizId: <?php echo (int)$this->quiz->getId(); ?>,
        mode: <?php echo (int)$mode; ?>,
        globalPoints: <?php echo (int)$globalPoints; ?>,
        timelimit: <?php echo (int)$this->quiz->getTimeLimit(); ?>,
        resultsGrade: <?php echo $resultsProzent; ?>,
        bo: <?php echo $bo ?>,
        json: <?php echo json_encode($json); ?>
    });
});
</script>   

。加载测验的页面的源HTML可以在这里看到:http://pastebin.com/xZVCTxyE对我来说,似乎代码是正常的并且$被正确编码以便运行,但显然有些东西已经关闭。

我在WordPress' Forum打开了一个问题,但还没有答案,因为这似乎是一个脚本错误而不是特定的WP问题,我决定在这里寻求帮助。知道如何解决这个问题吗?

更新

尝试了一些jQuery无冲突选项,如here,但还没有运气。即使使用no.Conflict和/或使用其他变量,错误也不会消失。

2 个答案:

答案 0 :(得分:4)

我有同样的问题。将$更改为jQuery。

<script type="text/javascript">
    jQuery(document).ready(function($) {
        jQuery('#wpProQuiz_<?php echo $this->quiz->getId(); ?>').wpProQuizFront({
            quizId: <?php echo (int)$this->quiz->getId(); ?>,
            mode: <?php echo (int)$mode; ?>,
            globalPoints: <?php echo (int)$globalPoints; ?>,
            timelimit: <?php echo (int)$this->quiz->getTimeLimit(); ?>,
            resultsGrade: <?php echo $resultsProzent; ?>,
            bo: <?php echo $bo ?>,
            json: <?php echo json_encode($json); ?>
        });
    });
</script>  

答案 1 :(得分:3)

问题是我的footer.php中没有footer call,插件正在使用它来加载页脚中的JavaScript。我暂时添加了这个代码段:

    <?php
   /* Always have wp_footer() just before the closing </body>
    * tag of your theme, or you will break many plugins, which
    * generally use this hook to reference JavaScript files.
    */
    wp_footer();
?>

我认为我所使用的基本主题已经完成,但我错了。傻我。 Al现在好!