Следственный эксперимент>> 2. Я прекрасно понимаю, что можно вообще каждому элементу назначить обработчик, однако, ИМХО, нафига тогда вообще иерархия объектов? Представляется естественным установить источник события по ID и его обрабатывать. > > Нет, Не Естественно. Обработчик События Естественно Ставить Тому Элементу, Для Которого Событие Имеет Смысл. Если Же Ставить Обработчик В Корень Иерархии И Разбирать События От Элемента, Его Вызвавшего, То Ты Будешь Делать Лишнюю Работу По Путешествию По Дереву, Которую За Тебя И Так Уже Делает Браузер. Сейчас Поясню...
А какую лишнюю работу я делаю? Определил объект и в зависимости от результата произвел действия. Куда еще минимизировать усилия ?))) Я по деревьям не хожу, это для Гекко привычнее ))
Три соображения в защиту подобного подхода - Во-первых, сокращается код. Вообразим 100 однотипных элементов, ID=a_01..a_99. Зачем сто раз повторять одно и то же, если можно, обработав событие и поняв, что его вызвал элемент a_n, сотворить с ним то, что нужно. Ведь неоправдано растет не только размер кода, но и размер модели документа в броузере. Во-вторых, при этом разделяются сущности - есть с одной стороны документ, в котором нет ничего лишнего, чистая иерархия объектов, а с другой в одном месте собрано его поведение. Не легче ли манипулировать такой структурой, чем переплетением логической структуры, визуальных элементов и обработчиков ? В идеале в документе не должно вообще после <body> быть никаких элементов скриптов. Отдельно иерархия, отдельно визуализация, отдельно логика. Ну и во-третьих, чисто личное - мне так кажется элегантнее.
ЗЫ В принципе вышесказанное "против" в большей степени относится к методу задания обработчиков в тэгах, чем к Вашему подходу с currenTarget, хотя при корректной реализации ДОМ для элемента ничего, кроме уникального имени, не нужно. Бритва, так сказать, Оккама... |