2012-05-02 8 views
7

मैं mousedown - अप घटनाओं पर एक बटन पर 2 अलग-अलग कार्यक्षमताओं को करने की कोशिश कर रहा हूं। लेकिन यह काम नहीं कर रहा है क्योंकि मैं mousedown घटना पर समय का पता लगाने में सक्षम नहीं है।jquery में mousedown घटना के दौरान समय की गणना कैसे करें?

var flag; 
$("#ClikerButton").mousedown(function(e){ 
    //if mouse pressed more than 2 sec, then 
    // do func1 and set flag = true; 
     //else do nothing 
}).mouseup(function(e){ 
//if flag == true, do nothing, 
//else do func2; 
}); 

उत्तर

6

आप उपयोग कर सकते हैं:

$(window).mousedown(function(e) { 
    clearTimeout(this.downTimer); 
    this.downTimer = setTimeout(function() { 
     alert('mousedown > 2 sec'); 
    }, 2000); 
}).mouseup(function(e) { 
    clearTimeout(this.downTimer); 
});​ 

फिडल:http://jsfiddle.net/simevidas/Pe9sq/2/

संदर्भ:Detecting time on mousedown event

+0

त्वरित उत्तर के लिए धन्यवाद। यह अभी ठीक काम कर रहा है। मैं mousedown घटना को नहीं जानता था नीचे टिमर परिवर्तनीय है। यदि उपलब्ध हो तो डाउनटाइमर वैरिएबल के साथ-साथ ऊपर टिमर चर के किसी और विवरण के बारे में मुझे बताएं। मुझे कोडिंग चर का उपयोग करने वाले कोडिंग भी प्रदान करें ... –

2

कोई 'jQuery' जादू नहीं है, बस जावास्क्रिप्ट टाइमर।

var pressTimer 

$("a").mouseup(function(){ 
    clearTimeout(pressTimer) 
    // Clear timeout 
    return false; 
}).mousedown(function(){ 
    // Set timeout 
    pressTimer = window.setTimeout(function() { ... your code ...},1000) 
    return false; 
}); 

यहाँ रेफरी कड़ी है https://stackoverflow.com/questions/2625210/long-press-in-javascript/2625240#2625240

1
var flag, flag2; 
$("#ClikerButton").on({ 
    mousedown : function(){ 
     flag = new Date().getTime(); 
    }, 
    mouseup: function(){ 
     flag2 = new Date().getTime(); 
     var passed = flag2 - flag; 
     console.log(passed); //time passed in milliseconds 
    } 
});​ 

FIDDLE

संबंधित मुद्दे