Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как исправить баг в jquery ui range slider 
:(
    Опции темы
maxipub
  Дата 18.5.2013, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Добрый день!

Ребята, кто разбирается в jquery, подскажите. Может кто уже исправлял данный баг. Просто jquery совсем не мой профиль, не внимать же во все, с чем сталкиваешься. smile

http://jqueryui.com/slider/ - range slider

Ведет себя адекватно, до тех пор, пока оба бегунка занимают одно место (значения совпадают). Когда происходит совпадение, при клике левей от бегунков, левый переходит в указанную позицию. Но! При клике правей - ничего не происходит (хотя правый бегунок должен бы отреагировать).

Как это можно исправить?
PM MAIL   Вверх
sQu1rr
Дата 18.5.2013, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 2
Всего: 13



С такой проблеммой сталкивались на stackoverflow,
Тикет до сих пор открыт, тоесть команда jQuery UI фиксит эту проблему, пока что единственный workaround - модификация кода jQuery UI.
Тут написано, как исправить этот баг в 1.8.6 http://stackoverflow.com/questions/4239458...4254932#4254932
Тут, фикс для последней версии http://stackoverflow.com/questions/1409174...ossible-to-drag
Надеюсь поможет ;) (сам не пробовал)
PM MAIL Skype GTalk   Вверх
Amphiluke
Дата 18.5.2013, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Возможно, лучше отнаследовать потомка от стандартного виджета $.ui.slider, перекрыв в нем единственный метод _mouseCapture.

Код

$.widget("ui.mySlider", $.ui.slider, {
    _mouseCapture: function (event) {
        var values, position, normValue;
        if (this.options.values.length === 2 && this.options.range === true) {
            values = this.values();
            if (values[0] === values[1]) {
                position = {x: event.pageX, y: event.pageY};
                normValue = this._normValueFromMouse(position);
                this._lastChangedValue = (normValue > values[0]) ? 1 : 0;
            }
        }
        return this._super(event);
    }
});


$( "#slider" ).mySlider({
    range: true,
    values: [ 17, 67 ]
});


Это сообщение отредактировал(а) Amphiluke - 18.5.2013, 18:23
PM   Вверх
maxipub
Дата 21.5.2013, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



sQu1rrAmphiluke, благодарю за ответы. К сожалению, так и не получилось исправить данный баг. Может это из-за того что последнюю версию взял (1.10.3) или потому, что у меня идет много слайдеров на странице, х3. Буду копать дальше.
PM MAIL   Вверх
Amphiluke
Дата 21.5.2013, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



maxipub, я тестировал свой фикс как раз с версией 1.10.3. Вот live demo.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1079 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.