Bezdepbonusu7Программирование: статьи и ответы

Вопрос

.change не работает, когда значение меняется через другой скрипт

Автор вопроса: SimonОтветов: 3

у меня есть тег выбора

<select name="valueAA" id="valueAA">

я использую UI Slider, и мне нужно написать функцию при изменении тега select, но когда он меняется с помощью ползунка, моя функция не работает.

$("#valueAA").change(function()
        {
            alert("works");// doesn't work
        })

можно ли избежать такого поведения без изменения скрипта ui slider и как объяснить такое поведение?

Спасибо

ОБНОВИТЬ

скрипт выглядит так

    $(function(){
                $('select#valueAA, select#valueBB').selectToUISlider({
                    labels:6

                });
     });

где я должен поместить этот сценарий? (я пробовал много вариантов:))

$( ".selector" ).bind( "slidechange", function(event, ui) {
  ...
});

jqueryjquery-uiuisliderjquery-plugins

Ответы

Ответ 1 · рейтинг 2 · Andy E

Насколько я вижу, слайдер пользовательского интерфейса написан поверх ползунка пользовательского интерфейса jQuery. Ползунок пользовательского интерфейса jQuery содержит события, которые вы можете использовать: начать, сдвинуть, изменить и остановить. Используя пример из документов, вы можете попробовать:

// Bind to the change event by type: slidechange.
$("#valueAA").bind( "slidechange", function(event, ui) {
  $(this).change();
});

ИЛИ, используя ваш обновленный пример, укажите обратный вызов в параметрах ползунка:

$(function(){
            $('select#valueAA, select#valueBB').selectToUISlider({
                labels:6,
                change: function (event, ui) { $(this).change(); }
            });
 });

Ответ 2 · рейтинг 2 · 472084

Я боролся с этим некоторое время, но нашел ответ следующим образом:

$('.slider').selectToUISlider({
    sliderOptions: {
        change:function() {
            alert("works");
        }
    }
});

Ответ 3 · Fabian

Выбор изменяется через сам элемент управления, поэтому событие изменения не запускается. Вы должны попытаться связать событие изменения на ползунке пользовательского интерфейса и использовать следующий код, чтобы вызвать событие изменения при выборе.

$("#valueAA").trigger("change");

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы