Сломанный стиль меню после добавления нового JavaScript

У меня есть выпадающие меню, которые выглядят так:

Однако я хотел, чтобы элемент div закреплял верх страницы в определенном диапазоне прокрутки, поэтому я добавил этот код в заголовок:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
// <![CDATA[
$(window).scroll(function(e){
    $el = $('.fixedElement');
    if ($(this).scrollTop() > 1437 && $el.css('position') != 'fixed'){
        $('.fixedElement').css({'position': 'fixed', 'top': '0px'});
    }
    if ($(this).scrollTop() < 1437 && $el.css('position') != 'absolute'){
        $('.fixedElement').css({'position': 'absolute', 'top': '1437px'});
    }
});
// ]]>
</script>

.fixedElement определен в моем CSS файле, а затем на него ссылаются

<div class="fixedElement">

Теперь мои выпадающие меню выглядят так:

Когда я комментирую новый javascript, меню возвращается в нормальное состояние.

Есть идеи, как заставить мой новый javascript работать с моими раскрывающимися меню?

Спасибо!

РЕДАКТИРОВАТЬ:

Одна консольная ошибка, относящаяся к раскрывающемуся списку javascript:

Uncaught TypeError: Object #<Object> has no method 'getElements'

Это ссылка на эту строку:

var links = $(this.options.id).getElements('a');

В этом javascript: MenuMatic

Когда я закомментирую новый javascript, ошибка исчезает, и мои меню возвращаются!


person jm_hall    schedule 29.07.2012    source источник
comment
@Utkanos У меня есть одна ошибка, связанная с раскрывающимся javascript: Uncaught TypeError: Object #<Object> has no method 'getElements' Это относится к этой строке: var links = $(this.options.id).getElements('a');   -  person jm_hall    schedule 30.07.2012
comment
Что ж, это исходит из другого скрипта, поскольку бит, который вы опубликовали, не ссылается на getElements().   -  person Mitya    schedule 30.07.2012
comment
Правильно, ошибка в раскрывающемся скрипте. Я использую MenuMatic для этого кода, потому что я не очень хорошо знаком с javascript.   -  person jm_hall    schedule 30.07.2012


Ответы (1)


Понятно.

В моем раскрывающемся списке javascript использовалась библиотека MooTools, а в моем липком div - jQuery.

jQuery использует "$" как ярлык для "jQuery", поэтому строка

var links = $(this.options.id).getElements('a');

ссылка на javascript из библиотеки MooTools вызывает ошибку, поскольку jQuery перезаписал определение для "$"

Этот конфликт разрешается вставкой

jQuery.noConflict();

перед моим сценарием jQuery и заменяя все символы «$» в моем сценарии jQuery на jQuery

Дополнительная информация здесь: http://docs.jquery.com/Using_jQuery_with_Other_Libraries

Смотрите также:

jQuery и другие библиотеки, а также использование символа '$'

Что означает символ $ в jQuery?

person jm_hall    schedule 30.07.2012