Выполнение скрипта в контексте элемента
Абстрагируемся.
Есть скрипт (слайдер), и есть 2 блока для которых он должен выполнятся. Но т.к. в одном блоке может быть 4 слайда а в другом, скажем, 3, выполнение одного и того-же срипта для обоих будет не правильным, ибо в скрипте происходит подсчёт количества слайдов, и там много ещё чего поламается. К тому-же при нажатии переключателя в одном блоке происходит смена слайда и в другом... В идеале - чтобы скрипт инициализировал себя для каждого из двух блоков отдельно. Сейчас скрипт подключается перед закрытием body, а начинается его выполнение со строчки $(document).ready(function () { p.s. можно конечно элементам второго блока задать другие классы и продублировать скрипт с этими изменениями, но я уверен что есть способ использовать ОДИН скрипт для обоих элементов. |
Цитата:
|
kvizor34, :) Мысли правильные
|
Ну к примеру, вот код для кнопки переключателя слайдов:
$(document).ready(function () { $('.right').click(function() { nextSlide(); }); }); элемент с классом .right есть как и в первом так и во втором блоке, соответственно функция сработает и поменяет мне слайд для обоих блоков. |
<!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> вот вам пища для размышления. если лень думать, в этом форуме, куча примеров ротаторов контента. просто поискать. |
Если я вас правильно понял, то отбор всех элементов при выполнении, в моём случае должен быть относительным?
|
Цитата:
а так можно дать элементу доп. класс и ориентироваться на него. |
Спасибо! мысль понял, как реализую отпишу!)
|
Цитата:
this->родитель->родитель->сосед с классом slidewrapper иными словами - мне нужно добраться до .slidewrapper через .right <div class="slider"> <div class="slidewrapper"></div> <div class="switch"> <div class="buttons"> <div class="right"></div> </div> </div> </div> |
$(this).parent().parent().siblings(".slidewrapper"); |
Часовой пояс GMT +3, время: 23:17. |