1

为了收集有关用户如何与 Web 应用程序交互的一些统计数据,我想知道他们如何使用某个 JQuery UI Slider。具体来说,我想知道他们是使用鼠标还是键盘(箭头键)来操作滑块。

我的代码如下:

$test.slider({range: "min", step: 0.1, slide: updatePosition, stop: slideEnd, start: slideStart});

slideStart在我的功能中,我如何检测slideEnd是否按下了箭头键或使用了鼠标?我必须修改插件源吗?这就是我想避免的。

将另一个处理程序添加到 $test 以进行单击/按键是最好的选择吗?

4

2 回答 2

2

您可以将事件侦听器绑定到slidechange和/或slide事件。第一个参数是一个事件对象,其中包含originalEvent. 它的type属性包含您要查找的内容。

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

警告!仅当originalEvent事件由用户交互触发时才会出现。

于 2012-11-06T20:38:26.257 回答
0

我想出了一个看起来最干净的方法。我刚刚补充说:

$test.keyup(slideKey);

$test 是我的滑块 div。我不得不使用keyup()而不是keypress()抓住 Chrome 中的箭头键。

在slideKey函数中,我只是使用传入的事件对象。

function slideKey(e)
{
    console.log(e.keycode);
}
于 2012-11-06T20:20:43.043 回答