Я заметил, что .on('click') иногда не срабатывает, если я смотрю сайт в режиме для мобильников. И иногда это сильно раздражает. Например, если у меня есть кнопка на карточке, которая является тегом a (я про карточку - она из тега a сделана). На кнопке есть preventDefault, но он не срабатывает, и после щелчка по кнопке происходит переход по ссылке.
Я заменил .on('click') на .on('touchstart'). Но тут другая проблема. После touchstart срабатывает click. То есть, если я щелкну по документу, у меня закроется, скажем, popup. И под курсором окажется какая-то ссылка. То произойдет переход по ней.
Как решить эту проблему? Вместо touchstart использовать что-то другое? Или каким-то образом останавливать клики после on touchstart?
Например, если у меня есть кнопка на карточке, которая является тегом a (я про карточку - она из тега a сделана). На кнопке есть preventDefault, но он не срабатывает, и после щелчка по кнопке происходит переход по ссылке.
Нужно остановить "всплытие" события. Возвращайте все как было (без тачстартов всяких) и после preventDefault добавьте stopPropagation.
Т.е. вот так: