jQuery не определен, а объект [object Object] не имеет метода «fancybox» в 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>

Где моя проблема?


person KarSho    schedule 01.03.2013    source источник
comment
Вы можете опубликовать javascript, который вы используете на своей странице?   -  person benzonico    schedule 01.03.2013


Ответы (2)


Я исправил это сегодня утром, вот коммит: https://github.com/osclass/Osclass/commit/cd9f75080f42d681be2e6bce709269073c0bcec2

Проблема заключалась в том, что зависимости fancybox не были установлены

person CONEJO    schedule 04.03.2013
comment
Это менее подробная версия ответа ниже, который был дан за 4 часа до вашего. Не знаю, как его приняли, без обид. - person AlienWebguy; 04.03.2013
comment
Поскольку JQuery уже был зарегистрирован/поставлен в очередь (в файле oc-load.php), проблема заключалась в том, что fancybox не установил зависимости и загружался до jquery. Правильное исправление состояло в том, чтобы установить зависимости (поэтому fancybox будет загружен ПОСЛЕ jQuery). - person CONEJO; 05.03.2013

jQuery не загружается, когда сценарий, выдающий ошибку, пытается его использовать. Ошибки, которые следуют за первым, связаны с тем, что jQuery не определен.

jQuery необходимо загрузить перед всем, что может от него зависеть.

Поскольку вы используете эти функции для загрузки вещей, которые вам нужно разместить, перед любым другим javascript, который может потребовать jQuery:

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>
person rg88    schedule 04.03.2013