Строка слайдера JQuery Mobile вместо номера
Я внедрил jQuery Mobile Slider в своем приложении. Это код
<input type="range" name="slider-1" id="slider-1" min="1" max="5" value="1">
<div id="hint"></div>
JS
var text = {1 : "bad", 2 : "okay", 3 : "better"};
var $sliderText = $('#hint');
var refresh = function(e){
$sliderText.text(text[$( '#slider-1' ).slider('value')]);
};
$( '#slider-1' ).slider({
slide: refresh,
change: refresh
});
Этот ползунок поставляется с полем ввода, в котором отображается текущее значение ползунка, например, 1,2,3,4,5. Я хочу иметь строки вместо числа, например: 1 = плохо, 2 = хорошо, 3 = лучше... Я пробовал это с событием onChange, но оно не работает.
Я надеюсь, что кто-то здесь может помочь?
2 ответа
Решение
Я решил это с помощью следующего кода:
<input type="range" name="slider-1" id="slider-1" min="1" max="5" value="1">
<div id="hint"></div>
JS:
// Slider Handling
$( "#slider-1" ).on( 'change', function( event ) {
var val = $("#slider-1").val();
if(val == 1){
$("#hint").empty();
$("#hint").append("beschissen");
}else if(val == 2){
$("#hint").empty();
$("#hint").append("naja");
}else if(val == 3){
$("#hint").empty();
$("#hint").append("passt");
}else if(val == 4){
$("#hint").empty();
$("#hint").append("fett");
}else if(val == 5){
$("#hint").empty();
$("#hint").append("geilo");
}
});
Попробуйте с:
JS
var text = {
1: "bad",
2: "okay",
3: "better",
4: "great",
5: "awesome"
};
var $sliderText = $('#hint');
var refresh = function (e) {
$sliderText.text(text[$('#slider-1').slider('value')]);
};
$(function () {
$('#slider-1').slider({
min: 1,
max: 5,
slide: refresh,
change: refresh
});
refresh();
});
HTML
Вы должны удалить type="range"
или это будет конфликт между мобильным API JQuery и jqUI
<div id="slider-1"></div>
<div id="hint"></div>
http://jsfiddle.net/techunter/fKcjy/
обратите внимание, что слайдерам JQuery UI никогда не нравилось находиться в кадре