2012-04-28 81 views
4

我正在使用jQuery的ui滑塊。在範圍滑塊中,如果我使用兩個手柄選擇相同的範圍,則一個手柄隱藏在另一個手柄後面。如果選擇相同的範圍,我只想滿足兩個手柄。請幫助我。使用jQuery的ui範圍滑塊具有相同的句柄值不重疊

$("#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]); 
    } 
});​ 
+1

如果值與它們應該重疊的值相同。如果你想同時看到兩個處理程序,而不是隻使用css來定位它們,那麼它們都可以隨時使用。 – 2012-09-24 14:55:04

+0

對於「滿足這兩個處理」的含義,你能更具體一些嗎? – karancan 2013-03-24 20:58:50

+0

我想它不應該重疊,如果價格或時間是相同的.. – supersaiyan 2013-03-27 09:27:40

回答

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; 
    } 
}); 

正如你由此可以看出,它的手柄是不實際選擇通過處理您選擇,但通過編程你點擊其中的距離。不知道爲什麼決定這是他們如何去做,但它不會讓你分別與他們互動,一旦他們是相同的價值;

+0

其實我只是想通了,他們這樣做,讓你點擊欄上的任何地方,並能夠開始滑動。 – 2013-04-13 00:27:46