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, время: 12:04. |