2

我正在使用 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>

我的问题在哪里?

4

2 回答 2

1

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

问题是fancybox的依赖没有设置

于 2013-03-04T09:26:45.763 回答
1

当抛出错误的脚本尝试使用它时,不会加载 jQuery。第一个错误都源于 jQuery 未定义。

jQuery 需要在其他可能依赖它的东西之前被加载。

由于您正在使用这些函数来加载您需要放置的东西,因此在任何其他可能需要 jQuery 的 javascript 之前:

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

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

<script type="text/javascript" src="<?php echo osc_current_web_theme_js_url('jquery.js') ; ?>"></script>
于 2013-03-04T05:19:32.357 回答