Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.02.2018, 12:04
Аватар для kvizor34
Аспирант
Отправить личное сообщение для kvizor34 Посмотреть профиль Найти все сообщения от kvizor34
 
Регистрация: 08.02.2018
Сообщений: 50

Выполнение скрипта в контексте элемента
Абстрагируемся.
Есть скрипт (слайдер), и есть 2 блока для которых он должен выполнятся. Но т.к. в одном блоке может быть 4 слайда а в другом, скажем, 3, выполнение одного и того-же срипта для обоих будет не правильным, ибо в скрипте происходит подсчёт количества слайдов, и там много ещё чего поламается. К тому-же при нажатии переключателя в одном блоке происходит смена слайда и в другом...
В идеале - чтобы скрипт инициализировал себя для каждого из двух блоков отдельно.
Сейчас скрипт подключается перед закрытием body, а начинается его выполнение со строчки $(document).ready(function () {

p.s. можно конечно элементам второго блока задать другие классы и продублировать скрипт с этими изменениями, но я уверен что есть способ использовать ОДИН скрипт для обоих элементов.
Ответить с цитированием
  #2 (permalink)  
Старый 13.02.2018, 12:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от kvizor34
Есть скрипт
где код или документация?
Ответить с цитированием
  #3 (permalink)  
Старый 13.02.2018, 12:22
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

kvizor34, Мысли правильные
Ответить с цитированием
  #4 (permalink)  
Старый 13.02.2018, 12:26
Аватар для kvizor34
Аспирант
Отправить личное сообщение для kvizor34 Посмотреть профиль Найти все сообщения от kvizor34
 
Регистрация: 08.02.2018
Сообщений: 50

Ну к примеру, вот код для кнопки переключателя слайдов:
$(document).ready(function () {	
     $('.right').click(function() {
             nextSlide();
     });
});

элемент с классом .right есть как и в первом так и во втором блоке, соответственно функция сработает и поменяет мне слайд для обоих блоков.
Ответить с цитированием
  #5 (permalink)  
Старый 13.02.2018, 12:32
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>

	<div>
		<span>текст1</span>
		<button class="right">кнопка</button>
	</div>

	<div>
		<span>текст2</span>
		<button class="right">кнопка</button>
	</div>

	<script>
		$(document).ready(function () {	
			$('.right').click(function() {
				$(this).prev().html('другой текст');
			});
		});
	</script>
	
</body>
</html>


вот вам пища для размышления.
если лень думать, в этом форуме, куча примеров ротаторов контента. просто поискать.
Ответить с цитированием
  #6 (permalink)  
Старый 13.02.2018, 12:38
Аватар для kvizor34
Аспирант
Отправить личное сообщение для kvizor34 Посмотреть профиль Найти все сообщения от kvizor34
 
Регистрация: 08.02.2018
Сообщений: 50

Если я вас правильно понял, то отбор всех элементов при выполнении, в моём случае должен быть относительным?
Ответить с цитированием
  #7 (permalink)  
Старый 13.02.2018, 12:41
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от kvizor34 Посмотреть сообщение
Если я вас правильно понял, то отбор всех элементов при выполнении, в моём случае должен быть относительным?
если разные селекторы вас не устраивают, то да.

а так можно дать элементу доп. класс и ориентироваться на него.
Ответить с цитированием
  #8 (permalink)  
Старый 13.02.2018, 12:43
Аватар для kvizor34
Аспирант
Отправить личное сообщение для kvizor34 Посмотреть профиль Найти все сообщения от kvizor34
 
Регистрация: 08.02.2018
Сообщений: 50

Спасибо! мысль понял, как реализую отпишу!)
Ответить с цитированием
  #9 (permalink)  
Старый 13.02.2018, 13:16
Аватар для kvizor34
Аспирант
Отправить личное сообщение для kvizor34 Посмотреть профиль Найти все сообщения от kvizor34
 
Регистрация: 08.02.2018
Сообщений: 50

Сообщение от j0hnik Посмотреть сообщение
если разные селекторы вас не устраивают, то да.

а так можно дать элементу доп. класс и ориентироваться на него.
Помогите реализовать селектор вида
this->родитель->родитель->сосед с классом slidewrapper

иными словами - мне нужно добраться до .slidewrapper через .right
<div class="slider">
  <div class="slidewrapper"></div>
  <div class="switch">
    <div class="buttons">
      <div class="right"></div>
    </div>
  </div>
</div>
Ответить с цитированием
  #10 (permalink)  
Старый 13.02.2018, 13:19
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

$(this).parent().parent().siblings(".slidewrapper");
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнение скрипта если есть html элемент Янковиц Элементы интерфейса 2 24.10.2017 21:47
Можно ли отключить выполнение скрипта в IE ? dimba jQuery 2 20.11.2014 07:17
Выполнение скрипта HTML-документа из XUL-документа C_r_u_s_h Events/DOM/Window 2 08.02.2013 14:46
Остановить выполнение скрипта Nonam Общие вопросы Javascript 22 04.05.2009 01:45
как прекратить выполнение скрипта ? kefi Общие вопросы Javascript 3 31.03.2009 19:05