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

Использование $(this) в функциях
Здравствуйте. Делаю слайды (ещё придется создать тут одну тему про плавность смены картин). Сделал широоокий блок со всеми фотографиями в один ряд, и перемещаю этот блок с помощью свойства transform:translateX(). И выборку блока и изменение этого свойства нужно выполнить множество раз. Поэтому, я решил создать функцию и использовать его множество раз:
function slaidPoz(poz){
	$(this).prev(".slaidlarBlok").find(".slaidContainer").css("transform", "translateX("+poz+"px)");
}
// и дальше несколько функций типа этого:
$(".kuchuUn").click(function(){
	if(transPoz <= -(slRasBlok.length * slRasBlokWidth - slRasBlokWidth)){ // позиция translateX
		transPoz = 0;
		//slaidPoz(transPoz);
		$(this).prevAll(".slaidlarBlok").find(".slaidContainer").css("transform", "translateX("+transPoz+"px)");
	}else{
		transPoz = transPoz - slRasBlokWidth;
		//slaidPoz(transPoz);
		$(this).prev(".slaidlarBlok").find(".slaidContainer").css("transform", "translateX("+transPoz+"px)");
	}
});

Как видите, вызов функции мне пришлось заблокировать и написать команды вручную. Дубликат (ниже по коду еще несколько раз так), не красиво.
И как я понимаю, причина того, что код не работает, в очень простом: $(this) в объявлении функции неизвестен.
Помогите пожалуйста, как правильно решить эту проблему?
Ответить с цитированием