Показать сообщение отдельно
Старый 02.02.2013, 23:17
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 6  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
позже кнопок будет очеень много, и на каждую вешать свой слушатель и писать "свой" обработчик события будет накладно и неудобно, потому делал ставку именно на имена...
Это заблуждение.

Тут дело в том что это за кнопки
И тут важны 2 случая:

1. Действие каждой кнопки уникально, т.е. кнопки делают разные вещи.
Здесь их хоть 50 будет на экране - лучше создать 50 обработчиков
Просто потому что с if-ами дело ничем хорошим не кончится.
Если есть какие-то одинаковые куски кода - лучше вынести в другие функции и дёргать в обработчиках
Разные действия - разные функции - тупая логика. Зачем здесь приделывать if-ы к тем же разным действиям?

2. Каждой кнопке сопоставлено какое-то значение
Например, числовые кнопки в стандартном калькуляторе Windows (1,2,3,4,5,6,7,8,9,0)
Конечно, нажатие на всё эти кнопки обрабатывается одинаково и нам важно получить только цифру
Тогда да, делается 1(один) обработчик на 10 кнопок.
Как он получает нужную цифру? Путей несколько: http://www.flasher.ru/forum/blog.php?b=239
И, заметьте, _большинство_ подходов к "передаче параметра" не поразумевают if-ы или свитчи. Т.е. обработчик просто берёт данные (в этом примере цифру) и делает с ними то, что нужно, не выясняя что за кнопка нажата.

P.S. А с event.currentTarget при текущем состоянии кода заработало?