Один обработчик для всех
Привет!
Обычно пишу: <script type="text/javascript"> jQuery(document).ready(function() { $("#various1").fancybox({ 'width' : '75%', }); $("#various2").fancybox({ 'width' : '75%', }); $("#various3").fancybox({ 'width' : '75%', }); и так для каждого ID. ИХ 200 например... $("#various200").fancybox({ 'width' : '75%', }); }); </script> Вручную я 200 обработчиков не пишу. просто через цикл PHP вывожу от 1-200. нижу идет: <a id="various1" href="#" >Действие</a> <a id="various2" href="#" >Действие</a> <a id="various3" href="#" >Действие</a> <a id="various4" href="#" >Действие</a> <a id="various5" href="#" >Действие</a> <a id="various6" href="#" >Действие</a> <a id="various7" href="#" >Действие</a> ... <a id="various200" href="#" >Действие</a> Вопрос: можно как то вместо всех обработчиков написать только ОДИН ? и использовать там что то типа THIS ???? ID заменить на CLASS не проблема. Просто надоело уже загромождать. На примере: я из базы вывожу список товаров. И около каждого товара есть кнопка что вызовет модальное окно. Вот я хочу написать один обработчик и что бы все они вызывали это окно только со своими данными. Как то так. Спасибо за ответы! |
Цитата:
|
Vanilla
<div id="test"> <a id="various1" href="#">Действие</a> <a id="various2" href="#">Действие</a> <a id="various3" href="#">Действие</a> <a id="various4" href="#">Действие</a> <a id="various5" href="#">Действие</a> <a id="various6" href="#">Действие</a> <a id="various7" href="#">Действие</a>... <a id="various200" href="#">Действие</a> <a href="#">Действия нет</a> </div> <script> test.onclick = function (e) { e = e || window.event; target = e.target || e.srcElement; if (!(target.tagName == "A" && target.id.slice(0, 7) == "various")) return; alert(target.id); } </script> jQuery <div id="test"> <a id="various1" href="#">Действие</a> <a id="various2" href="#">Действие</a> <a id="various3" href="#">Действие</a> <a id="various4" href="#">Действие</a> <a id="various5" href="#">Действие</a> <a id="various6" href="#">Действие</a> <a id="various7" href="#">Действие</a>... <a id="various200" href="#">Действие</a> <a href="#">Действия нет</a> </div> <script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script> <script> jQuery(function ($) { $('#test').on('click', 'a[id^=various]', function () { alert(this.id); }); }); </script> |
Цитата:
Так не бывает. "Товар" в вашей терминологии имеет структуру и в ней та самая кнопочка. Ссылку все равно генерить надо, тег, а развесить на определенный массив тегов функции легче простого по имени. Потому что массивы имен обычно и передаются на сервер массивами. |
Или по типу ноды или что самоочевидно по id родительского контейнера.
|
Часовой пояс GMT +3, время: 05:54. |