Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.09.2014, 09:34
Аспирант
Отправить личное сообщение для serrrgggeee Посмотреть профиль Найти все сообщения от serrrgggeee
 
Регистрация: 15.08.2014
Сообщений: 46

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 может быть первый элемент.
Ответить с цитированием
  #2 (permalink)  
Старый 24.09.2014, 11:33
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

$prev = $(getObject.prev, $container[0])
Тут идет поиск элементов .prevButton находящихся в элементе $container[0]. Если $container[0] это body значит ищут все .prevButton в body
Ответить с цитированием
  #3 (permalink)  
Старый 24.09.2014, 11:53
Аспирант
Отправить личное сообщение для serrrgggeee Посмотреть профиль Найти все сообщения от serrrgggeee
 
Регистрация: 15.08.2014
Сообщений: 46

а зачем именно так
$container[0]
можно же просто так
$container
он же один и присваивание происходило вот как
$container = body
и зачем вообще писать поиск в body если это и так верхний элемент я понимаю если бы поиск осуществлялся в каком то диве?
Ответить с цитированием
  #4 (permalink)  
Старый 24.09.2014, 12:32
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

$container = $('body');
вызывая $container мы получаем объект jquery, с которым дольше можно работать методами jq, а не сам элемент.
вызывая $container[0] мы получаем сам элемент,в данном случае Body, с которым можно работать методами нативного js.

$(getObject.prev, $container[0]) - в данном случае видимо автор наивно полагал, что нужно обязательно передать строку: в обычной записи это выглядело бы так: $('.prevButton','body'), хотя мир бы не рухнул если бы он записал и так $(getObject.prev, $container)

Сообщение от serrrgggeee
и зачем вообще писать поиск в body если это и так верхний элемент я понимаю если бы поиск осуществлялся в каком то диве?
Не знаю
Ответить с цитированием
  #5 (permalink)  
Старый 24.09.2014, 12:47
Аспирант
Отправить личное сообщение для serrrgggeee Посмотреть профиль Найти все сообщения от serrrgggeee
 
Регистрация: 15.08.2014
Сообщений: 46

а вот еще не знаю можно в этой теме, есть такой код
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);
										}
									}})

просто как я понимаю код работает последовательно то есть если функция вызвана кодом то она выполняется, а если например функция уже выполняется и сработал он клик получется функция прерывается и идет до того участка функции где действие на онклик? и еще в функции есть аргумент "е" он как я понял не обязательный?
Ответить с цитированием
  #6 (permalink)  
Старый 25.09.2014, 08:42
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

насчет .on() - таким образом тут на элемент $this навешаны обработчики showGallery и hideGallery, и никакого клика я тут не вижу. Так что при клике не будет ничего, тем более даже если бы был навешан клик и кликнуть два раза ничего не прервется а выполнится 2 раза.
е - обязательный аргумент только тот который будешь использовать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OFF scroll на body > ON scroll children barkar Общие вопросы Javascript 5 15.04.2014 21:24
текст после body TurikUs (X)HTML/CSS 4 09.04.2013 00:57
код между body и body ie7 не видит alexandr_poskrobka (X)HTML/CSS 2 09.03.2010 18:35
Координаты body относительно окна при margin auto varanio Events/DOM/Window 2 19.02.2010 10:28
Определение координат body. Kolyaj Events/DOM/Window 10 04.04.2009 16:20