我正在使用jQuery ui-slider。在范围滑块中,如果我使用两个手柄选择相同的范围,则一个手柄隐藏在另一个手柄后面。如果相同的范围已经选择,我只想要遇到两个手柄。请帮助我。
$("#dvSliderRange2").slider({
range: true,
min: 0,
max: 100,
values: [20, 40],
step: 10,
slide: function(event, ui) {
if (ui.values[0] == ui.values[1]) {
return false;
}
$("#lblRange2").text(ui.values[0] + " - " + ui.values[1]);
}
});
答案 0 :(得分:1)
我有一个使用下面的css的解决方案。这会在元素相等时为元素添加一个类。然后,Css定位这些手柄,使它们都可见。
http://jsfiddle.net/dhQk/jTx89/
然而,在交互性的情况下。如果不对滑块代码进行一些修改,则无法实现。我从jquery滑块1.10.2中包含了src。从src的第176行开始。
this.handles.each(function( i ) {
var thisDistance = Math.abs( normValue - that.values(i) );
if (( distance > thisDistance ) ||
( distance === thisDistance &&
(i === that._lastChangedValue || that.values(i) === o.min ))) {
distance = thisDistance;
closestHandle = $( this );
index = i;
}
});
正如您从中可以看到的那样,手柄实际上并不是由您选择的手柄选择的,而是按照您点击的位置的距离进行编程。不知道为什么决定这是他们怎么做的,但是一旦它们是相同的值,它就不会允许你单独与它们互动;