Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » jQuery один обработчик для нескольких DIV

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

jdjfhsdhfjs

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Имеем  
 
<DIV>  
<UL>
</UL>
</DIV>
 
<DIV>  
<UL>
</UL>
</DIV>
итд............
<DIV>  
<UL>
</UL>
</DIV>
 
при нажатии на DIV нужно вывести во вложенный UL результат обработки PHP, в зависимости от того на какой DIV нажал (какие параметры DIV, например имя DIVа). Я могу сделать это сделав количество jQuery обработчиков равное кол-ву ДИВов, но хочется сделать с одним обработчикам.  
 

Всего записей: 33 | Зарегистр. 27-11-2008 | Отправлено: 07:57 19-11-2015
K S

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jdjfhsdhfjs
Есть отдельная тема Вопросы по jQuery. Зачем создавать дубли?
 

Цитата:
результат обработки PHP

Используйте ajax.
 

Цитата:
хочется сделать с одним обработчикам

Каждому div присвоить id или data-*. При клике на любой div проверять эти параметры и отправлять нужный ajax запрос.

Всего записей: 236 | Зарегистр. 15-11-2015 | Отправлено: 08:30 19-11-2015
jdjfhsdhfjs

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пример можно? пожааааааааалуйста

Всего записей: 33 | Зарегистр. 27-11-2008 | Отправлено: 08:57 19-11-2015
K S

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
<DIV data-target="x">  
<UL>  
</UL>  
</DIV>  
<DIV data-target="y">  
<UL>  
</UL>  
</DIV>

 
Jquery:

Код:
 
$("div").click(function(){
 var target_category = $(this).data('target');
 // далее в ajax используем этот параметр
});
 

Всего записей: 236 | Зарегистр. 15-11-2015 | Отправлено: 09:07 19-11-2015 | Исправлено: K S, 09:07 19-11-2015
jdjfhsdhfjs

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо.
 
Но кое что не нравится.
я указываю class
$(".div1").click(function()
нажимаю на один div и все div с указанным  классом становятся одинаковыми, нажимаю на другой и все принимают другое значение, можно ли сделать так что нужное значение будет принимать только div на котором нажали? и при повторном нажатии не запрашивать данные как div с отдельным обработчиком по id?

Всего записей: 33 | Зарегистр. 27-11-2008 | Отправлено: 04:54 23-11-2015
K S

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jdjfhsdhfjs
 
Либо создавать несколько определений:

Код:
$('.div1[data-target=value]')

 
Либо проверять target внутри функции и применять только к элементу с нужным id.

Всего записей: 236 | Зарегистр. 15-11-2015 | Отправлено: 08:58 23-11-2015
jdjfhsdhfjs

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Начинает доходить, как этим пользоваться
сделал так,
$(".div1").click(function(){
var name = $(this).attr('name');  
$("#"+name).load("map.php","t="+name);
 
но здесь id вложенного ul должно совпадать с name родительского div.
Можно ли как то в $("#"+name).load("map.php","t="+name); указать дочерний ul для div с определенным id?

Всего записей: 33 | Зарегистр. 27-11-2008 | Отправлено: 06:12 24-11-2015 | Исправлено: jdjfhsdhfjs, 06:13 24-11-2015
K S

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jdjfhsdhfjs
Выше написано же.

Код:
$('.div1[name=value]')

Фильтровать можно по любому атрибуту.

Всего записей: 236 | Зарегистр. 15-11-2015 | Отправлено: 08:06 24-11-2015
jdjfhsdhfjs

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вы не поняли, мне нужно от
 
<DIV name="iddiv1" class="div1">  
 <UL id = "iddiv1">  
 </UL>  
 </DIV>
 
<DIV name="iddiv2" class="div1">  
 <UL id = "iddiv2">  
 </UL>  
 </DIV>
..........
 <DIV name="iddivN" class="div1">  
 <UL id = "iddivN">  
 </UL>  
 </DIV>
 
$(".div1").click(function(){
 var name = $(this).attr('name');  
 $("#"+name).load("map.php","t="+name);
  })
 
т.е. мне дважды приходится указывать name в div и id в ul, одно и тоже,  
как избавиться от этого?
 

Всего записей: 33 | Зарегистр. 27-11-2008 | Отправлено: 09:37 24-11-2015 | Исправлено: jdjfhsdhfjs, 09:58 24-11-2015
K S

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jdjfhsdhfjs
Всё написано уже выше.

Код:
$(".div1").click(function(){  
 var name = $(this).attr('name');    
 $(".div1[name=" + name + "] ul").load("map.php","t="+name);  
  })  

Всего записей: 236 | Зарегистр. 15-11-2015 | Отправлено: 10:12 24-11-2015
jdjfhsdhfjs

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Туговато доходило, не знал что тут как в CSS, что так можно .div ul
СПАСИБО!!!

Всего записей: 33 | Зарегистр. 27-11-2008 | Отправлено: 10:30 24-11-2015
hainguyen99992

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wow, thanks Ks

Всего записей: 1 | Зарегистр. 26-11-2015 | Отправлено: 08:25 26-11-2015 | Исправлено: hainguyen99992, 08:25 26-11-2015
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » jQuery один обработчик для нескольких DIV


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru