2012-11-06 64 views
1

爲了收集用戶如何與Web應用程序交互的一些統計信息,我想知道他們如何使用某個JQuery UI滑塊。具體來說,我想知道他們是否使用鼠標或鍵盤(箭頭鍵)來操縱滑塊。檢測JQuery UI滑塊事件鍵碼

我的代碼如下:

我怎麼會發現,在我的功能slideStartslideEnd,箭頭鍵是否被按下或使用

$test.slider({range: "min", step: 0.1, slide: updatePosition, stop: slideEnd, start: slideStart}); 
鼠標?我需要修改插件源嗎?這是我想避免的。

會添加另一個處理程序到$測試點擊/按鍵是最好的選擇嗎?

回答

0

我想出了一種看起來最清潔的方式。我剛剛加入:

$test.keyup(slideKey); 

其中$ test是我的滑塊div。我不得不使用keyup()而不是keypress()來捕捉Chrome中的箭頭鍵。

在slideKey功能,我只是用在傳遞的事件對象。

function slideKey(e) 
{ 
    console.log(e.keycode); 
} 
2

您可以將事件偵聽器綁定到slidechange和/或slide事件。第一個參數是包含originalEvent的事件對象。它的type屬性包含你在找什麼。

$test.bind('slide slidechange', function(event, ui) { 
    if (event.originalEvent) { 
     console.info(event.originalEvent.type); 
    } 
}); 

注意!如果事件是由用戶交互觸發的,則originalEvent將僅存在。