有人知道;如何在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...
});
触摸结束后停止追踪:
???我不得不停止跟踪
答案 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(这是笔记本电脑上的长件)时,我得到一个“绑定”,然后每次移动都输出该值。当我释放鼠标时,我得到一个“解除绑定”,然后在没有预先保持静止的情况下滑动不输出值(如果值通过滑块框改变则不输出)。