Функция переключения Jquery на страницы, которые включают mootools или скрипт slimbox - PullRequest
0 голосов
/ 28 августа 2009

Моя подруга попросила меня просмотреть ее сайт, где есть ошибки на страницах, которые используют slimbox - прерывания несвязанной функции переключения Jquery - вот код:

$(function() {
    $(".cat_nav dd").hide();
    $(".cat_nav dt").click(function() {
        $(this).next().toggle();
        return false;
    });
});

Этот код прекрасно работает, когда отсутствуют скрипты slimbox и mootools, но при загрузке любого из этих скриптов он ломается - элементы dt не скрыты, и нажатие на соответствующие им dd s не переключает их скрытие. Вот сообщение об ошибке от JS-консоли Safari:

TypeError: Result of expression '$(".cat_nav dd")' [null] is not an object.

Эта ошибка появляется только на страницах, которые загружают slimbox или mootools, например:

<script type="text/javascript" src="/js/mootools.js" charset="utf-8"></script>
<script type="text/javascript" src="/js/slimbox.js" charset="utf-8"></script>

Есть ли способ составить это, совместимый с Slimbox? Она использует slimbox для отображения галерей на некоторых страницах, которые используют эту функцию.

Ответы [ 2 ]

3 голосов
/ 28 августа 2009

Эта статья должна помочь. В основном вам нужно вызвать noConflict и использовать jQuery() для вызова ваших функций jQuery.

1 голос
/ 11 мая 2010

Эта ошибка появляется из-за использования $(".cat_nav dd"), вы должны использовать $$(".cat_nav dd"), потому что функция $() в mootools принимает только идентификатор элемента, а не селектор CSS.

...