Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.05.2012, 06:05
Новичок на форуме
Отправить личное сообщение для qvab Посмотреть профиль Найти все сообщения от qvab
 
Регистрация: 27.05.2012
Сообщений: 3

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


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

Последний раз редактировалось qvab, 27.05.2012 в 06:26.
Ответить с цитированием
  #2 (permalink)  
Старый 27.05.2012, 10:48
Аватар для Magneto
Люмус, Емаксос Developer!
Отправить личное сообщение для Magneto Посмотреть профиль Найти все сообщения от Magneto
 
Регистрация: 06.05.2010
Сообщений: 677

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

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

};


Или подключай библиотеки вверху страницы, а свои скрипты внизу.
Ответить с цитированием
  #3 (permalink)  
Старый 27.05.2012, 14:14
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от qvab
я вычитал вариант использовать window.onload , но это слишком громоздко
2 лишние строчки - это громоздко?
Ответить с цитированием
  #4 (permalink)  
Старый 27.05.2012, 16:59
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

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

(Сегодня форма одежды - порадная - белый верх - черный низ - (Привык я так....) Хотя сам в футболке
Ответить с цитированием
  #5 (permalink)  
Старый 27.05.2012, 18:03
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от Deff
А Что мешает добавить библиотеку jQuery на страницу?
Лишние 90кб ради одной бессмысленной фичи?
Ответить с цитированием
  #6 (permalink)  
Старый 27.05.2012, 18:29
Аспирант
Отправить личное сообщение для neWjs Посмотреть профиль Найти все сообщения от neWjs
 
Регистрация: 27.05.2012
Сообщений: 48

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

(Сегодня форма одежды - порадная - белый верх - черный низ - (Привык я так....) Хотя сам в футболке
а не проще взять именно то что нужно из библиотеки а не подключать ее полностью
Ответить с цитированием
  #7 (permalink)  
Старый 27.05.2012, 18:31
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Раед,
Мну по себе судит - поставил 90 - остальные скрипты сократились на 40-50 %
Не забывайте про кешируемость, в отличие от полнотекстовых скриптов на странице - библиотека грузится только в первый раз!
Ответить с цитированием
  #8 (permalink)  
Старый 28.05.2012, 07:59
Новичок на форуме
Отправить личное сообщение для qvab Посмотреть профиль Найти все сообщения от qvab
 
Регистрация: 27.05.2012
Сообщений: 3

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

P.S. На самом деле пишу свою библиотеку для своих нужд, только не обходимое: hide, show, fadeIn, fadeOut и т.п. По этому Jquery мне не как не надо.
Ответить с цитированием
  #9 (permalink)  
Старый 28.05.2012, 10:06
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

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

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

Последний раз редактировалось dmitriymar, 28.05.2012 в 11:52.
Ответить с цитированием
  #10 (permalink)  
Старый 28.05.2012, 16:58
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS Jquery нужна помощь globalus2010 Javascript под браузер 1 24.03.2011 23:05
Вывод кусков HTML кода с одного файла JS wlad2 Общие вопросы Javascript 16 04.01.2011 10:52
Очень нужна помощь с Ext JS dcbal ExtJS 1 09.07.2010 12:15
Html метки + div + JS boltayka Events/DOM/Window 1 07.09.2009 16:21
Как с помощью JS "на-лету" менять часть HTML кода greendoc Общие вопросы Javascript 2 18.03.2008 19:43