Форум на Kuban.ru (http://forums.kuban.ru/)
-   Веб-дизайн и программирование (http://forums.kuban.ru/f1030/)
-   -   jQuery один обработчик для нескольких DIV (http://forums.kuban.ru/f1030/jquery_odin_obrabotchik_dlya_neskol-kih_div-7325478.html)

SergeyS 18.11.2015 10:42

jQuery один обработчик для нескольких DIV
 
Имеем

<DIV>
<UL>
</UL>
</DIV>

<DIV>
<UL>
</UL>
</DIV>
итд............
<DIV>
<UL>
</UL>
</DIV>

при нажатии на DIV нужно вывести во вложенный UL результат обработки PHP, в зависимости от того на какой DIV нажал (какие параметры DIV, например имя DIVа). Я могу сделать это сделав количество jQuery обработчиков равное кол-ву ДИВов, но хочется сделать с одним обработчикам.

php4u_ru 19.11.2015 14:08

Сергей, задайте всем дивам одинаковый класс и устанавливайте обработчик на этот класс. Далее уже будете использовать внутренние данные каждого дива в своих расчетах.

SanekSp 24.11.2015 14:18

Ребята - Зачем все усложнять?
Если DIVу можно присваивать Имя или Класс.
Тогда проще присвоить ID и onclick="FunctionJS(ID);".
В результате получается:
<div id="1" onclick="FunctionJS(1);"></div>
...
...
<div id="n" onclick="FunctionJS(n);"></div>
<script type="text/javascript">
function FunctionJS(id){Обработчик клика по диву**
</script>
Вот и все!
И потом хоть jQuery хоть Ajax подгружаем из PHP <ul>...</ul>, вообщем все что Вам нужно.

SanekSp 24.11.2015 14:45

0-SergeySS >Вот тебе рабочий код - бери пока я Добрый и не мучайся!
<div class="group_boxc">
<a onclick="GroupOpen(20)" title="Открыть"><span class="group_open" id="gr_20">+</span></a> <a href="avtozapchasti-jidkosti_NORD">Охлаждающие жидкости NORD</a>
<div style="margin:5px 0 5px 0;" id="grtxt_20"></div>
</div><div class="group_boxc">
<a onclick="GroupOpen(21)" title="Открыть"><span class="group_open" id="gr_21">+</span></a> <a href="avtozapchasti-antifrizyi_MOBIL">АНТИФРИЗЫ MOBIL</a>
<div style="margin:5px 0 5px 0;" id="grtxt_21"></div>
</div><div class="group_boxc">
<a onclick="GroupOpen(22)" title="Открыть"><span class="group_open" id="gr_22">+</span></a> <a href="avtozapchasti-antifrizyi_ZIC">АНТИФРИЗЫ ZIC</a>
<div style="margin:5px 0 5px 0;" id="grtxt_22"></div>
</div>
<script type="text/javascript">
function GroupOpen(tid)**
var st=document.getElementById('gr_'+tid).innerHTML;
if(st=='-')**
document.getElementById('gr_'+tid).innerHTML='+';
document.getElementById('grtxt_'+tid).innerHTML='';
**else{
document.getElementById('gr_'+tid).innerHTML='-';
document.getElementById('grtxt_'+tid).innerHTML='<img src="images/admin/loader.gif" style="border-radius:10px;" />';
$.post("form-catalog_group", ** group:tid **,
function(data)**
document.getElementById('grtxt_'+tid).innerHTML=data;
**, "html");
**
**
</script>
Тут правда onclick в <a> сделан (это чтобы Плюс на Минус менять) но лишнее можешь Выкинуть!
Оригинал Кода здесь: [url]http://www.atomavto.ru/avtozapchasti-ohlajdayuschie_jidkosti[/url] Можно посмотреть как это работает!

droidman 24.11.2015 20:37

innerhtml, onclick при наличии jquery?) передавать параметр = id который уже есть у span?)

andreych 27.11.2015 15:10

$('.classname').bind('click',function()**
получаем ид - и т.д.
$(this). ...
**);

SanekSp 03.12.2015 22:44

4-droidman >А чем Вам не нравится OnClick и document.getElementById().innerHTML ?
Первый - Это стандартное событие (любой Браузер понимает)!
Вторая - Стандартная функция JS (ее таже jquery использует).
Да в коде слишком МНОГО лишних БУКОВОК - но ведь работает!
Вообще там раньше работал Ajax, но прикрутили jquery и выкинули его, а вот код в движке остался.
Так сказать обошлись МАЛОЙ кровью!

SanekSp 03.12.2015 23:00

4-droidman >Да и кстати у span и у div там ID нет!
Им ID присваивает PHP исходя из их id базы MySQL и буковок "gr_" и "grtxt_"!
И по этому достаточно передать ID в функцию GroupOpen(), и она сразу найдет куда и ЧЕ вставлять!

droidman 03.12.2015 23:43

ну если не смущает трёхкратное упоминание ID и явная шаблонизация, то норм)


Текущее время: 21:17. Часовой пояс GMT +3.