jQuery UI 控件之Slider
生活随笔
收集整理的這篇文章主要介紹了
jQuery UI 控件之Slider
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
項目需要,頁面上增加了2個slider控件用于設(shè)置range和limit,用的是jQuery UI官方的Slider:
但是我沒有直接使用他的代碼,因為我覺得寫的不是很好,所以我自己寫了一下,沒想到出現(xiàn)了一些問題,就是在鼠標(biāo)拖拽的過程中,數(shù)值更新不正常:
function updateDateRange(event, ui) {
var slider = event.target;
var values = $(slider).slider("values");
this.find(".amount-date-range-start").val(values[0]);
this.find(".amount-date-range-end").val(values[1]);
this.find(".date-range-desc").text("from week " + values[0] + " to week " + values[1]);
}
function updateRecordCountLimit(event, ui) {
var slider = event.target;
var val = $(slider).slider("value");
this.find(".amount-record-count-limit").val(val);
this.find(".record-count-limit-desc").text(val);
}
function initPanel(panel, id) {
$('a[href="#{id}"]'.replace('{id}', id)).click();
panel.find(".slider-record-count-limit").slider({
range: "max",
min: 1,
max: 500,
value: 25,
create: _.bind(updateRecordCountLimit, panel),
slide: _.bind(updateRecordCountLimit, panel),
});
panel.find(".slider-date-range", panel).slider({
range: true,
min: 1,
max: 60,
values: [1, 25],
create: _.bind(updateDateRange, panel),
slide: _.bind(updateDateRange, panel),
});
經(jīng)過一番調(diào)試,發(fā)現(xiàn)是slide消息響應(yīng)函數(shù)即updateXXX,不應(yīng)該使用slider("value")來獲取值,而是應(yīng)該通過ui.value來獲取,將代碼改寫,就OK了:
function updateDateRange(event, ui) {
var slider = event.target;
var values = (ui && ui.values) ? ui.values : $(slider).slider("values");
this.find(".amount-date-range-start").val(values[0]);
this.find(".amount-date-range-end").val(values[1]);
this.find(".date-range-desc").text("from week " + values[0] + " to week " + values[1]);
}
function updateRecordCountLimit(event, ui) {
var slider = event.target;
var val = (ui && ui.value) ? ui.value : $(slider).slider("value");
this.find(".amount-record-count-limit").val(val);
this.find(".record-count-limit-desc").text(val);
}
function initPanel(panel, id) {
$('a[href="#{id}"]'.replace('{id}', id)).click();
panel.find(".slider-record-count-limit").slider({
range: "max",
min: 1,
max: 500,
value: 25,
create: _.bind(updateRecordCountLimit, panel),
slide: _.bind(updateRecordCountLimit, panel),
});
panel.find(".slider-date-range", panel).slider({
range: true,
min: 1,
max: 60,
values: [1, 25],
create: _.bind(updateDateRange, panel),
slide: _.bind(updateDateRange, panel),
});
總結(jié)
以上是生活随笔為你收集整理的jQuery UI 控件之Slider的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PDF文件结构
- 下一篇: 百度用户注册(注册百度账号的方法)