@nikitoshq

Почему срабатывает событие Click при загрузке страницы?

Есть такой код html:
<div class="click_number_header" onclick="ga('send', 'event', 'click_number_header', 'click', 'Click number header');">
    057-098-28
    <span class="num_hide">-52</span>
    <span class="sh_nmr">показать</span>
</div>

И JS:
jQuery(document).ready(function($){
  $.fn.textToggle = function(cls, str) {
    return this.each(function(i) {
      $(this).click(function() {
        var c = 0, el = $(cls).eq(i), arr = [str,el.text()];
        return function() {
          el.text(arr[c++ % arr.length]);
        }
      }());
    })
  };
  $(function(){
    $('.sh_nmr').textToggle(".sh_nmr","").click();
    $('.sh_nmr').textToggle(".num_hide","ХХХ").click();
  });
});

Суть кода состоит в том, чтобы при загрузки страницы скрывать часть номера, для того чтобы отслеживать количество кликов по номеру телефона в гугл аналитике. Код скрывает номер отлично, но почему-то событие onclick в блоке срабатывает тоже при загрузки страницы.
<div class="click_number_header" onclick="ga('send', 'event', 'click_number_header', 'click', 'Click number header');">

Что может быть не так?
  • Вопрос задан
  • 171 просмотр
Решения вопроса 2
E1ON
@E1ON Куратор тега JavaScript
Programming, Gamedev, VR
Вы снизу кликаете на спаны, вот событие и всплывает к вашему онклику

$('.sh_nmr').textToggle(".sh_nmr","").click();
$('.sh_nmr').textToggle(".num_hide","ХХХ").click();


Вы можете навешать событие клика вручную, уже после кликов по спану
$('.click_number_header').on("click" , () => ga('send', 'event', 'click_number_header', 'click', 'Click number header'));
Ответ написан
coderisimo
@coderisimo Куратор тега JavaScript
Не совсем понимаю логику , но :
1) а зачем делать "автоклики" при загрузке страницы? Почему просто не вызвать нужную ф-цию ?
2) если уж так надо именно "автокликать" , используйте stopPropagation , чтобы "yellow submarine" не всплывала ))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект