2012-08-08 62 views
0

我有檢測用戶閒置狀態的功能。我想更新數據庫,如果任何事件的occurs.Now我有這樣的腳本如何檢測使用jQuery的所有事件?

$("body").mousemove(function(event) { 
myfuction(); 
}); 

我想上面的腳本轉換這樣

$("body").anyOfTheEvent(function(event) { 
myfuction(); 
}); 

我怎麼能這樣做呢?

+3

$(document).bind('click mousemove', function(evt) { document.getElementById("demo").innerHTML = Math.random(); }); 

例**爲什麼你需要檢測用戶的空閒狀態?**這可能是你在你的應用程序中的設計缺陷,因爲這可以把你的web應用程序抓取。特別是如果你將Ajax請求連接到你的事件(提及數據庫)。它肯定會使它完全無法使用。相信我。所有事件轉移到數據庫肯定會暫停。一個簡單的鼠標移動發生得比您可以將這些事件連接到服務器並將它們存儲在數據庫中要頻繁得多。 – 2012-08-08 09:44:15

+0

我在「Myfuction」的時間限制。只有每2分鐘 – EbinPaulose 2012-08-08 09:49:34

+0

還有一個Ajax請求發生:**爲什麼你需要檢測用戶空閒狀態** – 2012-08-08 09:52:43

回答

1

您可以使用e.type屬性找到事件名稱。試看看這個例子

$('#element').bind('click dblclick mousedown mouseenter mouseleave', 
        function(e){ 
         alert("EventName:"+e.type); 
        }); 
    ​ 

這樣做的的jsfiddle在這裏http://jsfiddle.net/qp2PP/

2

你可以有你感興趣的事件數組和訂閱個個

var events = ['click','mousemove','keydown'] // etc 
$.each(events,function(i,e){ 
    $('body')[e](myfuction);  
}); 

這裏獲取事件的列表:http://api.jquery.com/category/events/

1

可以綁定多個事件bind()

$('#foo').bind('click mousemove', function(evt) { 
    console.log(evt.type); 
}); 
+0

? ... – 2012-08-08 09:52:19

0

只是用on(),與事件的空間分隔的列表:

$('body').on('mousedown click', function(e) { 
    var eventType = e.type; 
    // do stuff 
}); 

參考文獻:

0

而是結合到特定的元素,你可以直接綁定記錄。在CODEPEN

相關問題