Нужна помощь! Обработка JS событий до загрузки HTML кода
Здравствуйте! У меня такая проблема:
Есть код:
<!-- JS -->
<script type='text/javascript'>
document.querySelector('#mytest').onclick=function(){
alert('Тест удался!');
}
</script>
<!-- HTML -->
<span id='mytest'>Click ME</span>
Обработчик не работает, т.к. еще не обработан HTML, я вычитал вариант использовать window.onload , но это слишком громоздко и проблематично. Моя проблема заключается в следующем: Мне нужно, что бы все обработчики событий и все возможные функции JS работали верху, до написания HTML, т.к. писать JS код после HTML мне не нравиться. P.S. Привык как в php пишешь код скрипта в верху, а html уже в низу. Хочу так-же только с JS. Надо чтобы работало как у Jquery т.е.
$('бал бал').click(
function(){ alert('бла бла');}
);
Помогите пожалуйста решиться задачу! |
onload - самый легкий, кроссбраузерный и понятный способ решения этой проблемы.
onload = function() {
здесь код, в том числе и для работы с DOM-деревом
};
Или подключай библиотеки вверху страницы, а свои скрипты внизу. |
Цитата:
|
qvab,
:yes:А Что мешает добавить библиотеку jQuery на страницу? (Сегодня форма одежды - порадная - белый верх - черный низ - (Привык я так....) Хотя сам в футболке |
Цитата:
|
Цитата:
|
Раед,
Мну по себе судит - поставил 90 - остальные скрипты сократились на 40-50 % Не забывайте про кешируемость, в отличие от полнотекстовых скриптов на странице - библиотека грузится только в первый раз! |
Господа! Jquery - не вариант, для меня это... как чистить зубы чужой щеткой, не люблю я библиотеки, сокращают потенциал...
Если кто знает, какие образом в Jquery события прописанные в верху работаю? Как там обрабатывается код? P.S. На самом деле пишу свою библиотеку для своих нужд, только не обходимое: hide, show, fadeIn, fadeOut и т.п. По этому Jquery мне не как не надо. |
ну дак проверяйте есть появился ли элемент в dom дереве и выполняйте события привязанные к нему. Для этого делайте "стек событий" каждый элемент которого -элемент для какого подвязано событие,событие , и действие.
Т.е наблюдайте за всеми событиями на странице,при появлении такого что есть в "стеке" проверяйте произошло ли на необходимом элементе , и если да выполняйте действие.-Что то на манер наблюдателя По моему путь гораздо длиннее. |
qvab,
Чем вас window.onload не устраивает? |
| Часовой пояс GMT +3, время: 18:57. |