• Как сделать, чтобы встроенный обработчик события убрал сам себя?

    levanufriev
    @levanufriev
    php, js, jq, mysql, delphi, c++
    Если в параметрах функции вы передадите 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, который запустил событие
       // вместо this можно использовать event.target - они оба ссылаются на одно и то же
    } );


    Как я понимаю, это задача, чтобы клик сработал единожды, и больше не срабатывал?

    Вот тут, собственно, все ответы:
    https://api.jquery.com/on/#on-events-selector-data...
    Ответ написан
  • Как обновить кэш картинки без перезагрузки страницы?

    levanufriev
    @levanufriev
    php, js, jq, mysql, delphi, c++
    Я тоже сначала думал, что мою задачу нельзя решить через добавление GET-параметров.

    Но, немного пораскинув, JQ + GET-параметры, и всё работает.
    Этот велосипед уже давно изобретён!
    Ответ написан
    Комментировать