Как jQuery может использоваться для обработки таймера в щелчке, dblclick разделение

#include <stdio.h>
#include <stdlib.h>

// ....


system("my_bash_script.sh");
6
задан vfclists 24 September 2009 в 15:28
поделиться

2 ответа

Для реализации функций таймера можно использовать setTimeout () и clearTimeout () :

var timeout;
var delay = 500;  // Delay in milliseconds

$("...")
    .click(function() {
        timeout = setTimeout(function() {
            // This inner function is called after the delay
            // to handle the 'click-only' event.
            alert('Click');
            timeout = null;
        }, delay)
    }
    .dblclick(function() {
        if (timeout) {
            // Clear the timeout since this is a double-click and we don't want
            // the 'click-only' code to run.
            clearTimeout(timeout);
            timeout = null;
        }
        // Double-click handling code goes here.
        alert('Double-click');
    }
;
7
ответ дан 11 December 2019 в 00:40
поделиться

jQuery Sparkle предоставляет чистое элегантное решение для этого, реализуя пользовательское событие в один клик. Сделав это, вы можете использовать его как любое другое событие, так:

$('#el').singleclick(function(){});
// or event
$('#el').bind('singleclick', function(){});

Он также предоставляет пользовательские события для последнего и первого щелчков в серии щелчков. А пользовательское событие lastclick фактически передает количество щелчков обратно! Так что вы можете сделать вот что!

$('#el').lastclick(function(event,clicks){
    if ( clicks === 3 ) alert('Tripple Click!');
});

Вы можете найти соответствующую демонстрацию, демонстрирующую то, что я только что сказал, здесь здесь, а исходный код для определения пользовательского события здесь здесь. Это открытый исходный код под лицензией AGPL, так что вы можете смело брать из него все, что вам нужно! :-) Он также активно развивается изо дня в день, поэтому вы никогда не будете испытывать недостатка в поддержке.

Но самое главное - это DRY Plugin/Effect Framework, который позволит вам разрабатывать плагины и расширения намного проще. Так что я надеюсь, что это поможет достичь этой цели!

0
ответ дан 11 December 2019 в 00:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: