![]() |
jQuery один обработчик для нескольких DIV Имеем <DIV> <UL> </UL> </DIV> <DIV> <UL> </UL> </DIV> итд............ <DIV> <UL> </UL> </DIV> при нажатии на DIV нужно вывести во вложенный UL результат обработки PHP, в зависимости от того на какой DIV нажал (какие параметры DIV, например имя DIVа). Я могу сделать это сделав количество jQuery обработчиков равное кол-ву ДИВов, но хочется сделать с одним обработчикам. |
Сергей, задайте всем дивам одинаковый класс и устанавливайте обработчик на этот класс. Далее уже будете использовать внутренние данные каждого дива в своих расчетах. |
Ребята - Зачем все усложнять? Если 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>, вообщем все что Вам нужно. |
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] Можно посмотреть как это работает! |
innerhtml, onclick при наличии jquery?) передавать параметр = id который уже есть у span?) |
$('.classname').bind('click',function()** получаем ид - и т.д. $(this). ... **); |
4-droidman >А чем Вам не нравится OnClick и document.getElementById().innerHTML ? Первый - Это стандартное событие (любой Браузер понимает)! Вторая - Стандартная функция JS (ее таже jquery использует). Да в коде слишком МНОГО лишних БУКОВОК - но ведь работает! Вообще там раньше работал Ajax, но прикрутили jquery и выкинули его, а вот код в движке остался. Так сказать обошлись МАЛОЙ кровью! |
4-droidman >Да и кстати у span и у div там ID нет! Им ID присваивает PHP исходя из их id базы MySQL и буковок "gr_" и "grtxt_"! И по этому достаточно передать ID в функцию GroupOpen(), и она сразу найдет куда и ЧЕ вставлять! |
ну если не смущает трёхкратное упоминание ID и явная шаблонизация, то норм) |
Текущее время: 23:07. Часовой пояс GMT +3. |