необработанное исключение: не может вызывать методы на слайдере до инициализации; попытался вызвать метод «отключить» - PullRequest
1 голос
/ 25 февраля 2012

Работает следующий блок кода:

$("#data\\[User\\]\\[notify_one_day_out\\]").val("0");
$('#data\\[User\\]\\[notify_one_day_out\\]').slider('disable');
$('#data\\[User\\]\\[notify_one_day_out\\]').slider('refresh');

$("#data\\[User\\]\\[notify_one_week_out\\]").val("0");
$('#data\\[User\\]\\[notify_one_week_out\\]').slider('disable');
$('#data\\[User\\]\\[notify_one_week_out\\]').slider('refresh');

$("#data\\[User\\]\\[notify_one_month_out\\]").val("0");
$('#data\\[User\\]\\[notify_one_month_out\\]').slider('disable');
$('#data\\[User\\]\\[notify_one_month_out\\]').slider('refresh');

$("#data\\[User\\]\\[notify_on_release_date_change\\]").val("0");
$('#data\\[User\\]\\[notify_on_release_date_change\\]').slider('disable');
$('#data\\[User\\]\\[notify_on_release_date_change\\]').slider('refresh');

$("#data\\[User\\]\\[notify_available_for_purchase\\]").val("0");
$('#data\\[User\\]\\[notify_available_for_purchase\\]').slider('disable');
$('#data\\[User\\]\\[notify_available_for_purchase\\]').slider('refresh');

, когда я пытаюсь заменить вышеуказанное на следующее, чтобы сжать код:

      $('[id^="data"]').val('0');
            $('[id^="data"]').slider('disable');
            $('[id^="data"]').slider('refresh'); 

Я получаю:

uncaught exception: cannot call methods on slider prior to initialization; attempted to call method 'disable'

Ответы [ 4 ]

5 голосов
/ 23 марта 2012

Недавно у меня возникла очень похожая проблема, и замена

$('.sth').slider('disable');

на:

$('.sth').attr('disabled', true);

помогла.Может быть, стоит попробовать.

4 голосов
/ 13 декабря 2012

У меня была такая же ошибка в проекте, над которым я работаю, и исправление было в том, чтобы инициализировать ползунки перед использованием любых методов, поскольку консольная ошибка почти явно заявляет.

См. Страницу jQuery Mobile Docs на ползунках. http://jquerymobile.com/test/docs/forms/slider/

Выберите все ползунки, вызовите метод slider () для инициализации, и ошибка будет устранена.

// Select all my inputs with the slider class, and initialize   
$('.slider').slider(); 
0 голосов
/ 23 апреля 2018

Я обнаружил, что проблема была в том, что я инициализировал ползунки в более ранней области кода, и тогда ссылка на $(myfield).slider() не существовала. Также стоит отметить, что это не работает, когда классы используются в качестве селектора.

Решением, которое я использовал, было определение

window['#'+$(this).attr('id')] = $('#'+$(this).attr('id')).slider();

А потом ссылка позже ...

window['#'+id].slider('enable'); (или отключить)

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 25 апреля 2013

Предлагаем добавить input к вашему [id^="data"]. У вас могут быть div или не слайдеры с id = data- что-то .

Также попробуйте ввести код в событие pageinit для каждой страницы с помощью ползунков:

$('#page1,#page2,.sliderpage').on('pageinit', function() {
   $('input[id^=data]').val('0').slider('disabled', true).slider('refresh'); 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...