7

mousedown - up イベントの1つのボタンで2つの異なる機能を実行しようとしています。しかし、マウスダウンイベントで時間を検出できないため、機能しません。

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;  
});  
4

3 に答える 3

7

次を使用できます。

$(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/

参照: マウスダウンイベントでの時間の検出

于 2012-05-02T07:00:33.773 に答える
2

「jQuery」の魔法はなく、JavaScriptタイマーだけです。

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

于 2012-05-02T06:59:00.997 に答える
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
    }
});​

フィドル

于 2012-05-02T07:01:51.667 に答える