Как можно отредактировать функцию gg() в файле HTML, чтобы при событии "touchstart" удалялось событие "click"?
Для отмены выполнения события, назначенного через атрибут on в HTML, во время его срабатывания можно использовать метод preventDefault() объекта события. Например: ```html <button onclick="event.preventDefault()">Нажми меня</button> ``` Чтобы отредактировать функцию gg() в файле HTML и удалить событие "click" при срабатывании события "touchstart", можно использовать метод removeEventListener(). Например: ```html <script> function gg() { // Код функции gg() } document.getElementById("myElement").addEventListener("click", gg); document.getElementById("myElement").addEventListener("touchstart", function() { document.getElementById("myElement").removeEventListener("click", gg); }); </script> ``` В данном примере при срабатывании события "touchstart" на элементе с id "myElement" будет удаляться событие "click", назначенное для функции gg().
Если в параметрах функции вы передадите id той кнопки, с которой хотите убрать обработчик, например:
<button id="btn_103" ontouchstart="gg(this.id)" onclick="gg(this.id)"></button>
тогда:
function gg(id){ if (event.type == "touchstart"){ $('#'+id).off("touchstart"); } }
Или, уж совсем:
function gg(id){ $('#'+id).off(event.type); }
Но тогда надо где-то взять переменную event - а она ниоткуда не прилетит сама...
Поэтому лучше вешать обработчик события не в самой кнопке, а после неё:
<button id="btn_103" ></button>
$('#btn_103').on("touchstart click", (event)=>{ // а вот тут уже ваш обработчик, который получит event в качестве переменной! $(this).off(event.type); //поскольку this - это ссылка на DOM element, который запустил событие } );
Вот тут, собственно, все ответы:
https://api.jquery.com/on/#on-events-selector-data...