container : body
здравствуйте не могу понять что здесь происходит
вот создается объект
getObject = {
container: 'body', // container of gallery
transformClasses: '.scale100, .scale90, .scale80, .scale70, .scale60',
clickableClasses: '.scale100',
rightSideClass: '.rightSide', // class for right side items
leftSideClass: '.leftSide', // class for left side items
cssProperty: 'marginLeft', // css property for changing (use marginTop, marginLeft, etc)
itemOffset: 100, // offset of $items
itemOffsetCenter: 0, // offset from center item
useCSS3Animation: true, // use css3 or jquery animation
autoplay: {}, // autoplay parameters
reflections: {}, // reflections of images
pagination: {}, // pagination for items
next: '.nextButton', // next button selector
prev: '.prevButton', // prev button selector
а вот как я понял в переменные загоняются кнопки $prev = $(getObject.prev, $container[0]), // prevoius button $next = $(getObject.next, $container[0]), // next button только не пойму что здесь дает вот это $container[0] тем более в эту переменную был помещен body, а какой у body может быть первый элемент. |
$prev = $(getObject.prev, $container[0])
Тут идет поиск элементов .prevButton находящихся в элементе $container[0]. Если $container[0] это body значит ищут все .prevButton в body |
а зачем именно так
$container[0]можно же просто так $containerон же один и присваивание происходило вот как $container = bodyи зачем вообще писать поиск в body если это и так верхний элемент я понимаю если бы поиск осуществлялся в каком то диве? |
$container = $('body');
вызывая $container мы получаем объект jquery, с которым дольше можно работать методами jq, а не сам элемент. вызывая $container[0] мы получаем сам элемент,в данном случае Body, с которым можно работать методами нативного js. $(getObject.prev, $container[0]) - в данном случае видимо автор наивно полагал, что нужно обязательно передать строку: в обычной записи это выглядело бы так: $('.prevButton','body'), хотя мир бы не рухнул если бы он записал и так $(getObject.prev, $container) Цитата:
|
а вот еще не знаю можно в этой теме, есть такой код
function init(){
// set length
length = (length % 2 === 0) ? (length-1) : length;
// hide last item, if length of $items is even
($items.length > length) && ($items.eq(length).css('display','none'));
// fill order items array
for (var i=0;i<length;i++){
itemsOrder.push(i);
}
// set reflections
getObject.reflections = $.extend(reflectionsDefaults, o.reflections);
getObject.reflections.enable&&createReflections();
// set autoplay
getObject.autoplay = $.extend(autoplayDefaults, o.autoplay);
getObject.autoplay.enable&&stopAutoplay();
// set order for items
setOrder();
// pagination
paginationInit();
var autoplayEnable = getObject.autoplay.enable;
// listeners
$this
.on({
showGallery: function(e){
if (!galleryActive){
getObject.onShowActions();
setListeners(galleryActive = true);
}
},
hideGallery: function(e){
if (galleryActive){
getObject.onHideActions();
getObject.autoPlayState = false;
setListeners(galleryActive = false);
}
}})
.trigger('showGallery')
// .trigger('goto', '0')
.on('firstAction', firstAction);
// on keydown event, event always on
$doc.on('keydown', keyboardEvents);
// check autoplay
if (autoplayEnable) {
getObject.autoplay.enable = true;
startAutoplay();
}
}
все понятно я хотел спросить в общем есть такой участок он срабатывает при срабатывании функции showGallery
$this
.on({
showGallery: function(e){
if (!galleryActive){
getObject.onShowActions();
setListeners(galleryActive = true);
}
},
hideGallery: function(e){
if (galleryActive){
getObject.onHideActions();
getObject.autoPlayState = false;
setListeners(galleryActive = false);
}
}})
просто как я понимаю код работает последовательно то есть если функция вызвана кодом то она выполняется, а если например функция уже выполняется и сработал он клик получется функция прерывается и идет до того участка функции где действие на онклик? и еще в функции есть аргумент "е" он как я понял не обязательный? |
насчет .on() - таким образом тут на элемент $this навешаны обработчики showGallery и hideGallery, и никакого клика я тут не вижу. Так что при клике не будет ничего, тем более даже если бы был навешан клик и кликнуть два раза ничего не прервется а выполнится 2 раза.
е - обязательный аргумент только тот который будешь использовать. |
| Часовой пояс GMT +3, время: 22:06. |