2013-06-03 60 views
3

我有一個jQuery Mobile Slider元素。它的意思是一個百分比,所以它的範圍從0到100最小/最大。因爲它在手機上使用,所以我將步驟設置爲5,我覺得更容易達到25%或50%。但是說有人想要66%。我希望他們能夠將此值輸入到輸入框中,並將其更新爲66%。相反,滑塊回落到65%。jQuery Mobile滑塊 - 使輸入能夠違反步驟

我可以直接編輯輸入框來更改滑塊值嗎?

enter image description here

+0

你可以做這樣的事情http://jsfiddle.net/Palestinian/LSGAk/。編輯文本框時,將'step'值更改爲'1'。一旦滑動按鈕被點擊,將'step'改回到'10'。 – Omar

+1

謝謝,簡單的想法,並且運作良好。我決定使用'onfocus'事件,因爲它不太經常打電話。但那確實有用。請作爲解決方案發布,我會接受。我想你也回答了我的其他一些問題,所以非常感謝你的幫助! – Paul

+0

我很高興我一直在幫助保羅:) – Omar

回答

2

你可以改變任何你想要一旦用戶進入自定義值step值。稍後,將step更改爲其原始值。

Demo

$(document).on('focus', '#slider-1', function() { 
$(this).attr('step', '1'); 
}); 

$(document).on('click', '.ui-slider-handle', function() { 
$('#slider-1').attr('step', '10'); 
}); 
0

我建議類似奧馬爾的解決方案,但將在默認情況下離開step較低的價值和使用jQuery移動slidestartslidestop事件。在我的情況下,它的工作更可靠。

$('#slider').on('slidestart', function(event) { 
    $(this).attr('step', '5'); 
}); 

$('#slider').on('slidestop', function(event) { 
    $(this).attr('step', '1'); 
}); 

JSFiddle example