Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.05.2020, 15:58
Новичок на форуме
Отправить личное сообщение для Svet_lana Посмотреть профиль Найти все сообщения от Svet_lana
 
Регистрация: 12.05.2020
Сообщений: 5

вызов функции в цикле
Уважаемые эксперты, помогите
вот допустим есть div, b есть функция которая обрабатывает клик по этому div.

<div id="a1'>
Привет
</div>
<script>
$('#a1').click(function(){alert("test"); })
<script>

Это работает. А если у меня есть 10 таких div, как сделать цикл?
<script>
for(i=0; i<10; i++)
{
var f='a'+i;
$('#f').click(function(){alert("test"); })
</script>

Не работает.
Как правильно оформить цикл. Т.е. узнать по какому div кликнули?
Ответить с цитированием
  #2 (permalink)  
Старый 12.05.2020, 16:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

А зачем цикл? Установите один обработчик для нескольких по классу или по иному селектору, а в обработчике this (или event.target) укажет на источник события.
Ответить с цитированием
  #3 (permalink)  
Старый 12.05.2020, 16:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Svet_lana,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #4 (permalink)  
Старый 12.05.2020, 16:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Svet_lana,
вам не нужен цикл, вам нужно id заменить на class
Ответить с цитированием
  #5 (permalink)  
Старый 12.05.2020, 16:14
Новичок на форуме
Отправить личное сообщение для Svet_lana Посмотреть профиль Найти все сообщения от Svet_lana
 
Регистрация: 12.05.2020
Сообщений: 5

дело в том, что у меня есть много слоев, которые содержат много div.
Т.е. я все равно упираюсь в цикл. У меня все работает если я описываю каждый раз все заново. Но вот стало интересно, а в цикл можно заключить?
Ответить с цитированием
  #6 (permalink)  
Старый 12.05.2020, 16:18
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Svet_lana
а в цикл можно заключить?
Если ваши DIV будут иметь общий признак, например, одно имя класса или части имени класса/идентификатора, или одного общего родителя (братья), то просто указывайте эту коллекцию по общем признаку как селектору и устанавливайте один обработчик. Можно и делегировать обработку родителю. А цикл, это уже забота JQuery, то есть явно его применять не нужно.
Ответить с цитированием
  #7 (permalink)  
Старый 12.05.2020, 16:26
Новичок на форуме
Отправить личное сообщение для Svet_lana Посмотреть профиль Найти все сообщения от Svet_lana
 
Регистрация: 12.05.2020
Сообщений: 5

Спасибо, сейчас попробую
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов вложенной функции объявленной без ключевого слова var ytil Общие вопросы Javascript 6 15.10.2018 22:53
Вызов функции, отмена старой функции. Таймер finlolo Events/DOM/Window 10 15.08.2018 21:18
Динамическое подключение JS и вызов функции Paqwerty Events/DOM/Window 1 25.04.2017 16:33
Вызов функции страницы из расширения chrome nontxt Events/DOM/Window 0 09.02.2015 10:42
Вызов функции из функции с параметрами cript Events/DOM/Window 13 18.01.2015 14:57