jQuery没有定义,Object [object Object]在OSClass中没有方法'fancybox'

时间:2013-03-01 12:20:16

标签: jquery osclass

我正在使用OSClass。当转到http://localhost/osclass/index.php?page=item&id=2页时,会出现以下错误。

Uncaught ReferenceError: jQuery is not defined 
(anonymous function) 

Uncaught TypeError: Object [object Object] has no method 'fancybox' 
(anonymous function)
o 
p.fireWith 
e.extend.ready 
c.addEventListener.B 

Uncaught TypeError: Cannot call method 'create' of undefined
(anonymous function)

在那个文件中我的js是,

osc_register_script('fancybox', osc_current_web_theme_js_url('fancybox/jquery.fancybox.js'));

osc_enqueue_script('fancybox');
osc_enqueue_script('jquery-validate');

osc_enqueue_style('fancybox', osc_current_web_theme_js_url('fancybox/jquery.fancybox.css'));

    <script type="text/javascript">
        $(document).ready(function(){
            $("a[rel=image_group]").fancybox({
                openEffect : 'none',
                closeEffect : 'none',
                nextEffect : 'fade',
                prevEffect : 'fade',
                loop : false,
                helpers : {
                        title : {
                                type : 'inside'
                        }
                }
            });
        });
    </script>

我的问题在哪里?

2 个答案:

答案 0 :(得分:1)

当抛出错误的脚本试图使用它时,不会加载jQuery。第一个错误之后的错误都源于jQuery没有被定义。

jQuery需要在任何之前加载,否则可能依赖于它。

由于您正在使用这些函数来加载您需要放置的内容,所以在任何其他可能需要jQuery的javascript之前:

osc_register_script('jquery', osc_assets_url('path/to/jquery.js'));
osc_enqueue_script('jquery');

通过查看与您正在使用的内容相关的其他一些代码,您也可以使用以下代码(这取决于您的其余代码...我只是把它扔出去,因为您没有向我们展示......入队函数可能是更好的选择):

<script type="text/javascript" src="<?php echo osc_current_web_theme_js_url('jquery.js') ; ?>"></script>

答案 1 :(得分:1)

我今天早上修好了,这是提交:https://github.com/osclass/Osclass/commit/cd9f75080f42d681be2e6bce709269073c0bcec2

问题是fancybox的依赖关系没有设置