Nik*_*ole 6 jquery jquery-ui jquery-plugins
在此演示页面:http://jqueryui.com/demos/slider/#event-change
事件'slide'重写有两个输入:
$( "#amount" ).val( "$" + $( "#slider-range" ).slider( "values", 0 ) +
" - $" + $( "#slider-range" ).slider( "values", 1 ) );
Run Code Online (Sandbox Code Playgroud)
为了我的目的,我想知道,两个滑块中的哪一个被移动(最小或最大).我怎么能得到它?
cfi*_*lol 11
右滑块处理程序是滑块容器的最后一个子句,因此,与左处理程序不同,右处理程序没有nextSibling:
$('#slider-range').slider({
range: true,
min: 0, max: 500,
values: [ 75, 300 ],
slide: function(event, ui) {
if (ui.handle.nextSibling) {
// Moving LEFT slider ...
} else {
// Moving RIGHT slider ...
}
}
});
Run Code Online (Sandbox Code Playgroud)
小智 8
即使我最近遇到了同样的问题.使用范围滑块时,需要确定移动了哪个滑块(右侧或左侧).有没有直接的方法来确定,但然而,ui对象具有的属性,value并且values你可以用它来确定哪些滑块被感动了.这是对我有用的解决方案: -
$( "#slider-range" ).slider({
range: true,
min: 75,
max: 300,
values:[75,300],
slide: function( event, ui ) {
target_name = ''
if(ui.values[0] == ui.value) target_name = 'min_price'
else if(ui.values[1] == ui.value) target_name = 'max_price'
alert(target_name)
}
Run Code Online (Sandbox Code Playgroud)
@Nikoole,没有具体方法可以找到哪个句柄正在滑动,但你可以试试这个技巧
var minSlide = 75, maxSlide = 300;
$("#slider-range").slider({
range: true,
min: 0,
max: 500,
values: [ 75, 300 ],
slide: function( event, ui ) {
if(minSlide != parseInt(ui.values[0], 10)){
// Do what in minimum handle case
}
else if(maxSlide != parseInt(ui.values[1], 10)) {
// Do what in maximum handle case
}
},
stop: function(event, ui){
minSlide = parseInt(ui.values[0], 10);
maxSlide = parseInt(ui.values[1], 10);
}
});
Run Code Online (Sandbox Code Playgroud)
希望这会有所帮助.