2012-02-17 4 views
1

Насколько я знаю, ползунок диапазона jQuery UI Range должен перемещать ближайший dragger/handle, если один щелчок на слайдере. Однако в моем случае это, похоже, не происходит, и только левый переулок перемещается. В качестве примера можно увидеть следующий код:jQuery UI Slider не перемещает ближайший dragger/handle

$(function() { 
    $("#slider-range").slider({ 
     range: true, 
     min: 0, 
     max: 4, 
     step: 1, 
     values: [ 0, 4 ], 
     slide: function(event, ui) { 
      $("#amount").val("$" + ui.values[ 0 ] + " - $" + ui.values[ 1 ]); 
     } 
    }); 
    $("#amount").val("$" + $("#slider-range").slider("values", 0) + 
     " - $" + $("#slider-range").slider("values", 1)); 
}); 

И вы можете увидеть это jsFiddle из этого примера: http://jsfiddle.net/dZ7Yg/

Если вы пытаетесь переместить правый Dragger/ручку на вторую точку, просто нажав на слайдер, вы не сможете этого сделать. Как только правый перетащитель достигнет третьей точки, он не переместится ко второму, если вы даже нажмете 1px перед ним, он будет перемещать левый в любом случае.

Может ли кто-нибудь помочь мне в этом? Как это можно решить?

Спасибо за помощь!

+0

Ваш слайдер, кажется, отлично работает для меня в Chrome и firefox? – kmb64

+0

Это на самом деле. То, что не работает, - это когда вы нажимаете на ползунок, чтобы привнести правый перетаскиватель/дескриптор во вторую точку - вы не сможете этого сделать. Моя скрипка показывает это. Попробуйте просто щелкнуть возле правого драггера, чтобы привести его ко второму пункту, и он застрянет на третьем. – cycero

ответ

0

Щелчок на этих баре немного сложнее, но я думаю, что ниже, как он ведет себя,

Состояние 1: Левый ползунок имеет приоритет над правом слайдера.

Условие 2: Ползунок перемещается в следующую позицию, когда вы приближаетесь к следующей позиции. Например: на нижнем изображении левый слайдер переместится на P1, когда вы нажимаете в любом месте синего прямоугольника, охватывающего P1.

Условие 3: Щелчок в любом месте ближе к слайдеру ничего не делает.

enter image description here

Помните эти условия и прочитать ниже,

При перемещении правого регулятора P2, и теперь вы хотите, чтобы переместить правый бегунок от P2 к P1, однако влево ползунок имеет приоритет и перемещает его в P1.

enter image description here

Теперь снова нажав на P1 не двигается правый ползунок, потому что левый ползунок находится на P1 и согласно условию 3 он не делает ничего.

Мне кажется, что слайдер jQuery для диапазона не ведет себя так, как мы ожидаем.

+0

Спасибо. Есть ли способ изменить/исправить это? Или, может быть, вы можете предложить альтернативу этому ползунку диапазона? – cycero

+0

Единственный способ, которым я мог подумать, - это обновить код плагина, чтобы обработать, как вы хотите, чтобы он вел себя или искал какой-то другой плагин jQuery. Для обработки этого случая плагин не имеет возможности. –