как предотвратить двойной щелчок мышью (за раз)

0
   $(document).ready(function() {
    $(".voteMe").one('click', function (event) { 
              event.preventDefault();          
           //my stuff

$(this).prop('disabled', true);
        });
    });

приведенный выше код позволяет одиночному щелчку мыши. Но это не позволяет следующий щелчок, я имею в виду следующий щелчок мышью, он предполагает двойной щелчок. мой окончательный вывод: я хочу разрешить все одиночные клики и разрешать двойные щелчки (когда когда-либо потребитель вводит двойной щелчок, он будет принимать только один клик)

Теги:

5 ответов

1

Использовать следующий код

 $(".voteMe").click(function (e) {
        if ($(this).hasClass('clicked')) return;
        $(this).addClass('clicked');
         setTimeout(function() { $(this).removeClass('clicked'); }, 500);

    });
0

попробуй это:

 $(document).ready(function() {
    $(".voteMe").one('click', function (event) { 
          event.preventDefault();          
       //my stuff

       $(this).prop('disabled', true);

       $(".voteMe").unbind("click");
    });
});
0

Затем вы должны развязать двойной клик:

$('.voteMe').unbind('dblclick');
  • 0
    один существует; см. api.jquery.com/one
  • 0
    Использование one является причиной, по которой он может щелкнуть только один раз.
Показать ещё 1 комментарий
0

Вы можете использовать функцию setTimeout() и предотвратить выполнение обработчика за определенный период времени:

$(".voteMe").on('click', function (event) {
    if ($(this).hasClass('clicked')) return;

    var $this = $(this).addClass('clicked');
    setTimeout(function() { $this.removeClass('clicked'); }, 500);

    // ...
});
  • 0
    Благодаря вашему другу, он работает нормально. Но иногда он позволяет дважды щелкнуть мышью, и мой установленный тайм-аут 1000
  • 0
    @ user2750450 Ну, это не должно происходить по логике, вы можете предоставить демо?
-2

Jquery связывает двойной клик и один клик отдельно

var DELAY = 700, clicks = 0, timer = null;

$ (document).ready(function() {

$("a")
.live("click", function(e){

    clicks++;  //count clicks

    if(clicks === 1) {

        timer = setTimeout(function() {

            alert('Single Click'); //perform single-click action

            clicks = 0;  //after action performed, reset counter

        }, DELAY);

    } else {

        clearTimeout(timer);  //prevent single-click action

        alert('Double Click');  //perform double-click action

        clicks = 0;  //after action performed, reset counter
    }

})
.live("dblclick", function(e){
    e.preventDefault();  //cancel system double-click event
});

});

  • 1
    зачем использовать удаленный метод live ()?
  • 0
    проверить эту ссылку jsfiddle.net/KpCwN/4
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню