Ползунок диапазона с произвольными точками привязки - PullRequest
1 голос
/ 04 января 2012

Я реализовал ползунок диапазона jQuery на создаваемой мной веб-странице, но не представляется возможным привязать ее к определенным неравномерно распределенным значениям.Кто-нибудь знает, возможно ли это с помощью ползунка jQuery или есть альтернатива, которую я могу использовать?

В качестве более конкретного примера, скажем, у меня есть диапазон от 0 до 100, и у меня есть массив как[0, 7, 32, 61, 67, 90, 100].Я хочу, чтобы ползунок диапазона мог только выбирать значения в массиве.

1 Ответ

4 голосов
/ 05 января 2012

Вы можете использовать обратный вызов slide , чтобы ограничить разрешенные позиции:

Срабатывает при каждом движении мыши во время слайда. Значение, указанное в событии как ui.value, представляет значение, которое будет иметь дескриптор в результате текущего перемещения. Отмена события предотвратит перемещение дескриптора, и дескриптор будет иметь прежнее значение.

Так что вам просто нужно что-то вроде этого:

var allowed = { 0: true, 7: true, /*...*/ 100: true };
$("#slider").slider({
    //...
    slide: function(event, ui) {
        if(!allowed[ui.value])
            return false;
    }
});

Вы также можете использовать массив для allowed и return false, если allowed.indexOf(ui.value) отрицательно; Я думаю, что использование объекта читается лучше.

Демо: http://jsfiddle.net/ambiguous/eRtBa/

...