2012-05-08 76 views
0

有人知道;如何處理jQuery Mobile的滑塊touchstart和touchend事件? 我只能處理更改和啓動事件,但找不到觸控解決方案。Jquery Mobile Slider Touch事件

我的目標是阻止在未被觸摸時跟蹤滑塊變化。

任何幫助將不勝感激。 謝謝,

我的代碼:

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

停止跟蹤後觸摸結束:

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

回答

2

怎麼樣使用vmouseup。正如文檔中所述,這是您必須用來處理touchend或mouseup事件的事件。

你可以結合使用unbind來實現你的目標嗎?

編輯:

我只是鉻測試

$('#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(這是筆記本電腦上的一個很長的命令)時,我會得到一個「綁定」,然後每一步都輸出這個值。當我釋放我的鼠標時,我得到一個「解除綁定」,然後在沒有提前保持的情況下滑動不會輸出該值(如果通過滑塊框更改值,則不輸出該值)。

+0

我試過了,但不幸的是unbind不工作..我已經分配vmousedown的附加和vmouseup分離與綁定和解綁的幫助,因爲你建議,但它不是解除綁定:( – MrGorki

+0

我也試過把滑塊放在另一個div中,並聽取vmouseup並從這個div下來,但解除綁定不能再工作 – MrGorki

+0

但你有沒有嘗試通過綁定或直播活動連接的更改事件解除綁定? –