Показать сообщение отдельно
  #5 (permalink)  
Старый 08.10.2017, 13:53
Аспирант
Отправить личное сообщение для Булат Азат улы Посмотреть профиль Найти все сообщения от Булат Азат улы
 
Регистрация: 07.09.2016
Сообщений: 83

Извините, я, кажется, не полностью понял смысл .bind() и $.proxy(). Или, может, они могут выполняться только при помощи "this"?
Дело в том, что я написал функцию:
function slaidPoz(transPoz){
	return function(){
		var transBlok = $(".slaidContainer");
		if(transPoz <= -(slRasBlok.length * slRasBlokWidth - slRasBlokWidth)){
			transPoz = 0;
			transBlok.css("transform", "translateX("+transPoz+"px)");
		}else{
			transPoz = transPoz - slRasBlokWidth;
			transBlok.css("transform", "translateX("+transPoz+"px)");
		}
	}
}

Нужно запустить эту функцию несколько раз. Один раз - точно в таком виде, в каком он и написан (по выборке):
setInterval(slaidPoz(transPoz), 6000);

И несколько раз запустить с относительного места (с помощью "this").

То есть, на странице могут быть несколько слайдов, и функция с интервалом (смена изображений) должна работать на всех слайдах. А вот при клике на кнопки вперед/назад, должна запускаться та же функция, только для определенного слайда, с помощью "this".
Вот код HTML:
<div class="slaidlar">
	<div class="slaidlarBlok">
		<div class="slaidContainer"><div class="slaidRasemBlok"><img src="img/slaid/1.jpg"><p>Слайд 1</p></div><div class="slaidRasemBlok"><img src="img/slaid/2.jpg"><p>Слайд 2</p></div><div class="slaidRasemBlok"><img src="img/slaid/3.jpg"><p>Слайд 3</p></div></div>
	</div>
	<img class="next" src="img/arrow-next.png">
	<img class="prev" src="img/arrow-prev.png">
</div>

Получается, в функции переменную transBlok нужно заменить на это:
//это:
$(".slaidContainer");
// на это:
$(this).prevAll(".slaidlarBlok").find(".slaidContainer");

Что-то мне подсказывает, что это можно сделать с помощью .bind() и $.proxy(), но не могу добиться работоспособности своих поделок.
Ответить с цитированием