0

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

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 论坛上提出了一个问题,但还没有答案,因为这似乎是一个脚本错误而不是一个特定的 WP 问题,所以我决定在这里寻求帮助。知道如何解决这个问题吗?

更新

尝试了一些 jQuery 无冲突选项,例如这里,但仍然没有运气。即使没有冲突和/或使用另一个变量,错误也不会消失。

4

2 回答 2

5

问题是我的 footer.php 中没有页脚调用,插件正在使用它来加载页脚中的 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();
?>

以为我使用的基本主题是完整的,但我错了。傻我。现在好了!

于 2013-04-08T02:32:46.650 回答
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>  
于 2013-03-12T20:25:16.490 回答