Jquery移动滑块触摸事件

时间:2012-05-08 09:21:15

标签: events jquery-mobile slider

有人知道;如何在jquery mobile的滑块上处理touchstart和touchend事件? 我只能处理更改并启动事件但无法找到touchend的解决方案。

我的目标是在未被触摸时阻止跟踪滑块更改。

任何帮助将非常感谢。 谢谢,

我的代码:

HTML:

<input type="range" name="slider" id="slider" class="slider" value="1000" min="500" max="20000" data-highlight="true" data-mini="true" />

JS:

触摸后

开始跟踪(将继续跟踪):

$('#slider').next().children('a').bind('taphold', function () {
    $('#slider').live("change", function (event, ui) {
    //do some stuff here...
    });
});
总是追踪:

 $('#slider').live("change", function (event, ui) {
    //do some stuff here...
    });

触摸结束后停止追踪:

???我不得不停止跟踪​​

1 个答案:

答案 0 :(得分:2)

使用vmouseup怎么样?正如文档中所述,这是您必须用来处理touchend或mouseup事件的事件。

您可以将其与使用unbind相结合,以实现您的目标吗?

修改

我刚用chrome和以下

测试过
$('#slider').next().children('a').bind('taphold', function() {
    console.log("bind");
    $('#slider').bind("change", function(event, ui) {
        console.log(this.value);
    });
});

$('#slider').next().children('a').bind('vmouseup', function() {
    console.log("unbind");
    $('#slider').unbind("change")
});

完全符合预期。在控制台中,当我做一个taphold(这是笔记本电脑上的长件)时,我得到一个“绑定”,然后每次移动都输出该值。当我释放鼠标时,我得到一个“解除绑定”,然后在没有预先保持静止的情况下滑动不输出值(如果值通过滑块框改变则不输出)。