0

有人知道吗?如何处理 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...
    });

触摸结束后停止跟踪:

???我必须以某种方式停止追踪

4

1 回答 1

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

完全按预期工作。在控制台中,当我进行轻敲(这是笔记本电脑上的长时间点击)时,我得到一个“绑定”,然后每一步都会输出值。当我释放鼠标时,我得到一个“解除绑定”,然后在不保持不动的情况下滑动不会输出值(如果通过滑块框更改值,也不会输出)。

于 2012-05-08T09:44:38.543 回答