Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Нужна помощь! Обработка JS событий до загрузки HTML кода (https://javascript.ru/forum/events/28619-nuzhna-pomoshh-obrabotka-js-sobytijj-do-zagruzki-html-koda.html)

qvab 27.05.2012 07:05

Нужна помощь! Обработка 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('бла бла');}
                       );


Помогите пожалуйста решиться задачу!

Magneto 27.05.2012 11:48

onload - самый легкий, кроссбраузерный и понятный способ решения этой проблемы.
onload = function() {

здесь код, в том числе и для работы с DOM-деревом

};


Или подключай библиотеки вверху страницы, а свои скрипты внизу.

Раед 27.05.2012 15:14

Цитата:

Сообщение от qvab
я вычитал вариант использовать window.onload , но это слишком громоздко

2 лишние строчки - это громоздко?

Deff 27.05.2012 17:59

qvab,
:yes:А Что мешает добавить библиотеку jQuery на страницу?

(Сегодня форма одежды - порадная - белый верх - черный низ - (Привык я так....) Хотя сам в футболке

Раед 27.05.2012 19:03

Цитата:

Сообщение от Deff
А Что мешает добавить библиотеку jQuery на страницу?

Лишние 90кб ради одной бессмысленной фичи?

neWjs 27.05.2012 19:29

Цитата:

Сообщение от Deff (Сообщение 176905)
qvab,
:yes:А Что мешает добавить библиотеку jQuery на страницу?

(Сегодня форма одежды - порадная - белый верх - черный низ - (Привык я так....) Хотя сам в футболке

а не проще взять именно то что нужно из библиотеки а не подключать ее полностью

Deff 27.05.2012 19:31

Раед,
Мну по себе судит - поставил 90 - остальные скрипты сократились на 40-50 %
Не забывайте про кешируемость, в отличие от полнотекстовых скриптов на странице - библиотека грузится только в первый раз!

qvab 28.05.2012 08:59

Господа! Jquery - не вариант, для меня это... как чистить зубы чужой щеткой, не люблю я библиотеки, сокращают потенциал...
Если кто знает, какие образом в Jquery события прописанные в верху работаю? Как там обрабатывается код?

P.S. На самом деле пишу свою библиотеку для своих нужд, только не обходимое: hide, show, fadeIn, fadeOut и т.п. По этому Jquery мне не как не надо.

dmitriymar 28.05.2012 11:06

ну дак проверяйте есть появился ли элемент в dom дереве и выполняйте события привязанные к нему. Для этого делайте "стек событий" каждый элемент которого -элемент для какого подвязано событие,событие , и действие.
Т.е наблюдайте за всеми событиями на странице,при появлении такого что есть в "стеке" проверяйте произошло ли на необходимом элементе , и если да выполняйте действие.-Что то на манер наблюдателя

По моему путь гораздо длиннее.

Раед 28.05.2012 17:58

qvab,
Чем вас window.onload не устраивает?


Часовой пояс GMT +3, время: 21:39.