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

エラーをスローしているスクリプトがjQueryを使用しようとすると、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>
于 2013-03-04T05:19:32.357 に答える
1

今朝修正しました。コミットは次のとおりです:https ://github.com/osclass/Osclass/commit/cd9f75080f42d681be2e6bce709269073c0bcec2

問題は、fancyboxの依存関係が設定されていないことでした

于 2013-03-04T09:26:45.763 に答える