Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не работает обработка события (https://javascript.ru/forum/events/59127-ne-rabotaet-obrabotka-sobytiya.html)

n1x0n 28.10.2015 23:37

Не работает обработка события
 
У меня есть кнопка на форме обратной связи в подвале<footer>, мне нужно обработать на ней событие onclick, я это делал функцией, но оно не работает... делал так
<script>
var h1 = document.GetElementsByTag('h1')[0];
var usluga = document.title
document.ready(function(){
$('#zvonok').on('click', function() {
ga('send', 'event', 'zayavka', '{usluga (h1)}', 'Обратный звонок');
yaCounter30901576.reachGoal('zayavka');
return true;
});
$('#zapis').on('click', function() {
ga('send', 'event', 'zayavka', '{usluga (h1)}', 'Запись к врачу');
yaCounter30901576.reachGoal('zayavka');
return true;
});
$('#vopros').on('click', function() {
ga('send', 'event', 'zayavka', '{usluga (h1)}', 'Задать вопрос');
yaCounter30901576.reachGoal('zayavka');
return true;
});
});
</script>

Потом решил обрабатывать срузу в копках без функции, помогло, но я теперь не понимаю как мне получить значение переменных usluga, и h1...
Я создал скрипт с переменными сразу после тега <body> .
<script>
document.ready(function(){
var h1= document.getElementsByTag('h1')[0];
var uslugi = document.title;
}
</script>

Но пишет что h1 undefine

solomon2 29.10.2015 00:27

Попробуйте вместо
$('#zvonok').on('click', function() {

написать
$('body').on('click', '#zvonok', function() {

n1x0n 29.10.2015 01:24

Цитата:

Сообщение от solomon2 (Сообщение 393507)
Попробуйте вместо
$('#zvonok').on('click', function() {

написать
$('body').on('click', '#zvonok', function() {

К сожалению не помогло, может быть это связанно с тем что блоки с формами изначально dispay:none ?
через атрибут onclick работает, но не могу понять как перенести значение переменных usluga и h1, пробовал после <body> так
<script>
h1 = document.getElementsByTag('h1')[0];
usluga = document.title;
</script>

и так
<script>
window.h1 = document.getElementsByTag('h1')[0];
window.usluga = document.title;
</script>

solomon2 29.10.2015 08:57

Содержимое тега получается так:

document.getElementsByTagName('h1').item(0).innerHTML


И вот это странная конструкция {usluga (h1)}. Вам просто надо передать текст title и текст h1? Если да, то навешиваем событие по которому получаем и передаем 2 значения:

<div id="zvonok" onclick="send_info(document.title,document.getElementsByTagName('h1').item(0).innerHTML)"><div>



Дальше передаем значения методу ga:

function send_info(title,h1){
ga('send', 'event', 'zayavka', title, h1, 'Обратный звонок');
yaCounter30901576.reachGoal('zayavka');
}

Brook 29.10.2015 13:15

а зачем их передовать - объсвите в начале документа
<script>
window.h1 = document.getElementsByTag('h1')[0].innerHTML;
window.usluga = document.title;
</script>

а далее из строки
<div id="zvonok" onclick="send_info()"><div>

и сама функция
function send_info(){
ga('send', 'event', 'zayavka', title, h1, 'Обратный звонок');
yaCounter30901576.reachGoal('zayavka');
}


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