Onclick, возвращающий объект
Попался такой код (в чужом проекте)
... <li onclick="return {owner_id: 1, company_id: 2}" class="item"><span class="b-ucompany">Mega</span></li> ... Что-то я подвис в попытке понять этот onclick. Куда он объект-то возвращает?? Тут есть ещё какой-то суровый фреймворк, вроде самописный, в котором я не разобрался. Подскажите плизь, знающие люди, как вообще можно что-то надстроить, чтоб такое хоть как-то заюзать? Должен же быть какой-то обработчик в который, по идее, приходит этот объект при клике. Как его создать, может кто нибудь примерчик привести? Спасибо. |
Это пример "как делать не надо". Работает так:
<li onclick="return 'value';" id="item">Mega</li> <script> alert( document.getElementById("item").onclick() ); </script>То есть onclick используется как хранилище. А при срабатывании события, объект возвращается в никуда. Короче, на редкость через одно место сделано. |
Не соглашусь. Это делается прежде всего как независимое хранилище данных, то есть передача данных, мне это кажется очень удобно, так как на разных страницах можно вызывать одну и ту жу функцию с разными аргументами.
Лучше почитать вот здесь http://sreznikov.blogspot.com/search/label/JavaScript |
Всё понял, спасибо. Интересное решение. Хотя использование события не по назначению смущает.
Но это уже вопрос скорее религиозный. Кому-то нравится такая гибкость, а по мне так это скорее бардак. Дело привычки наверное. |
Способ передачи данных из разметки или от сервера джаваскриптовому компоненту.
Достоинства — компактная запись, не нужно вызывать eval, работает абсолютно везде и довольно быстро. Недостатки — пуристы сходят с ума:) По факту, в современном JS этот атрибут не используется по исконному назначению. С сугубо прагматической точки зрения — это удобно. |
Часовой пояс GMT +3, время: 20:49. |