Здравствуйте!
Есть кнопка, в которой событие onclick:
<input type="submit" value="Заказать звонок" onclick="yaCounterXXXXXX.reachGoal('4'); return true;">
Мне нужно, что было не только:
yaCounterXXXXXX.reachGoal('4'); return true;
а ещё:
dataLayer.push({"event": "zayavka_obratnyiy_zvonok"});
Подскажите как это сделать. Спасибо.
<script>
// Объявляем функцию обработки события клика (имя функции произвольное)
function onSubmitBtnClick() {
yaCounterXXXXXX.reachGoal('4');
dataLayer.push({"event": "zayavka_obratnyiy_zvonok"});
return true;
}
// При событии "содержимое DOM загружено", еще до полной загрузки страницы, мы уже можем работать с элементами
// Тут в качестве обработчика добавляется анонимная стрелочная функция: () => {}
document.addEventListener('DOMContentLoaded', () => {
let submit = document.querySelector('input[type="submit"]'); // выбираем элемент. Селектор чисто для примера - в реальном коде лучше использовать более конкретный (а еще лучше, кнопки выбирать по id)
submit.addEventListener('click', onSubmitBtnClick); // добавляем элементу наш обработчик события "click" - указываем имя функции
});
</script>
Впоследствии можно добавить еще обработчики, через тот же метод addEventListener
. Тогда, переменную указывающую на элемент, лучше объявить глобально.
А назначать обработчики событий инлайн (в атрибутах on<eventname>
) - не самая хорошая практика: помимо головной боли с навешиванием нескольких обработчиков, это порождает еще и лишние сложности с контекстом и this
... что в некоторых случаях вынуждает делать лишние обращения к DOM, или даже костылить те вещи, которые иначе (при назначении методом) решились бы проще и эффективнее.
Выполнить две функции подряд
function f1() {
console.log("выполнение функции 1")
}
function f2() {
console.log("выполнение функции 2")
}
<div onclick="f1(); f2();" style="width: 100px; height: 25px; background-color: #777777; border-radius: 10px;text-align:center;padding-top:3px;cursor:pointer;" >кнопка</div>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как перезагрузить панель не перезагружая страницу? Мне просто нужно обновлять данные по кликуПробовал
Есть поля формы, которые создаются динамическиНужно расчитать 5 поле()Стоимость по формуле: width * len * height
Пытаюсь реализовать загрузку изображения на сервер, но файл не загружаетсяПомогите исправить ошибку
Написать скрипт который решает систему линейных уравнений (должна быть реализованы подпрограммы вычисления определителя и алгебраического...