Я тоже сталкивался с этой проблемой раньше. Решение, которое я использовал, не очень красивое, но я нашел единственный эффективный способ подавления события касания после касания и удержания.
Единственное рабочее решение, которое я смог найти, - это создать переменную bool
в глобальном пространстве имен. В вашей функции setTimeout
измените значение bool
на true
, чтобы указать, что произошло касание и удержание.
В событии события onClick
для строки, сначала проверьте глобальную переменную, чтобы увидеть, если вы уже создали событие касания и удержания - если у вас есть, просто вернитесь из события onClick
. Это эффективно отключит ваше событие нажатия, когда произойдет касание и удержание.
Не забудьте установить глобальную переменную на false
после завершения функции касания и удержания.