$ или jQuery
Здравствуйте.
В чем разница между $() и jQuery() ?? В одних местах работает одно, в других другое (модули на сайт joomla, например) И еще такой вопрос. Выбираю элементы и вывожу что получилось var sections = $('#part1, #part2'); for(k in sections) { str += k+": "+ sections[k]+"\r\n"; } alert(str); и мне выводит Код:
0: [object HTMLDivElement] for (pos in sections){ jQuery('#info-'+pos).text('pos'); } мне выводит не 0 1 2... в элементах #info-0 #info-1 #info-2 и тд... а ищет #info-length #info-prevObject и тд.. |
ShutTap, про основы jQuery прочитай.
|
по первому - одно и тоже, просто у меня где то $ уже используется другой библиотекой, а jQuery не конфликтует?
По второму не нашел что-то... Или это нормально, и мне надо использовать .each? |
Цитата:
Цитата:
|
ага, так только элементы что нужны берет. спасибо)
но тогда такой вопрос. мне нужно определить, какой из элементов сейчас показывается на странице. Видимым считаю элемент, который проходит через середину экрана. на скролл вешаю обработчик: var screenH = jQuery(document).height(); var top = jQuery(window).scrollTop(); var pos; sections.each(function(pos, element) { objTop = jQuery(element).offset().top; objHeight = jQuery(element).outerHeight(true); if (objTop < top + screenH/2 && top + screenH/2 < objTop + objHeight){ //break; } }); jQuery('info').text((pos)+' '+objTop+' '+(top+screenH/2)+' '+(objTop+objHeight)+' '+top); то есть перебираем нужные элементы при скролле, и если у кого-то попадает через середину - прерываем цикл, и индекс будет указывать на тот элемент, на котором остановились, который через середину проходит. в блок info вывожу информацию для размеров. pos - undefined. Почему? Вроде объявил переменную за циклом. И break не работает, хотя вроде читал, должно как в обычном цикле работать, а в итоге весь код не работает. Как прервать тогда перебор цикла? |
ShutTap,
надо не цикл прерывать, что в данном случае невозможно, а данные сохранять, где изменение внешнего pos? var screenH = jQuery(document).height(); var top = jQuery(window).scrollTop(); var pos; sections.each(function(index, element) { objTop = jQuery(element).offset().top; objHeight = jQuery(element).outerHeight(true); if (objTop < top + screenH/2 && top + screenH/2 < objTop + objHeight){ pos = index } }); jQuery('info').text((pos)+' '+objTop+' '+(top+screenH/2)+' '+(objTop+objHeight)+' '+top); |
аа, break не работает все-таки... в инете писали, что как в обычном цикле. понятно, спасибо)
и такой теперь косяк. длина sections на данный момент 4 (проверяю size()) то есть, индексы должны же быть 0 1 2 3 так? а у меня 1 2 3 undefined... От чего такое может быть (на странице точно все 4 есть элемента) |
Цитата:
нужен макет минимальный, ничего лишнего 4 ваших блока + info + скрипты и css |
нашел ошибку... вместо
var screenH = jQuery(document).height(); надо было var screenH = jQuery(window).height(); из-за этого неправильно отрабатывало условие и элемент съезжал |
Часовой пояс GMT +3, время: 02:57. |