Показать сообщение отдельно
  #22 (permalink)  
Старый 19.07.2012, 15:25
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от leko
а если потом надо поменять функцию, это ж сколько работы, да и вероятность где-то пропустить достаточна высокая
что там можно упустить, если абсолютно все обработчики весят на body?

Сообщение от leko
таких строк в проекте встречается 20, 50, 100 раз
да хоть 9000, всё равно обработчик то один. а приведённый пример JQ, кстати, будет обходить все эти элементы

Сообщение от Deff
с другой - часто удобно смотря на элемент в исходнике страницы понимать чем он обрабатывается (Хотя бы по классу
а ещё легче понять, когда перед тобой (глазами, т.е.) висит хеш, где ключ - селектор, а функция - значение. так ещё проще понять, что, куда и зачем.

Сообщение от bes
При обработке на body как раз класс или id нужен, только искать уже теперь придётся не по всему коду, а только в обработчиках body
JQ засирает элементы, давая им всем ID (или другой атрибут), коим является рандомное число. это число используется для $.data, и, как Вы уже поняли, для лёгкого делегирования. Вывод сделайте сами

Сообщение от bes
Вроде очень даже удобная схема получается
можно сделать проще - как я имел в виду.

Сообщение от melky Посмотреть сообщение
<script>
function rand () {
    return 255 * Math.random() | 0;
}

function delegater (e) {
    e = e || event;
    e = e.target || e.srcElement;
    e.style.backgroundColor = "rgb("+ rand() +", " + rand() + ", " + rand() + ")";
}
</script>

<body *!*onclick="delegater(event)"*/!*>
    <div>DIV</div>
    <p>P</p>
    <a href="#">A</a>
</body>
потестировал в IE10 в режиме эмуляции IE7, и во всех свежаках. работает

единственная проблема возникнет, когда захочется проделегировать НЕвсплывающие события - к хорошему быстро привыкаешь
Ответить с цитированием