флажок обнаружения не отмечен с помощью jquery

0

Я пытаюсь обнаружить, когда флажок установлен или не установлен в jquery. Я динамически создаю флажки из содержимого json. Вот как они созданы:

$.each(data.modifierOptions, function(key, item) {
                            var checkBox = "<input type='checkbox' class='modifier' data-name='" + item.Name + "' + data-price='" + item.Price + "' name='" + item.Name + "' value='" + item.ID + "'/>" + item.Name + "<br/>";
                            $(checkBox).appendTo('#modifiersDiv');
                        });      

Теперь, просматривая источник тела, я получаю следующее:

Изображение 174551

Наконец, я пытаюсь получить событие checked/unchecked с этим событием jquery, но ничего не происходит:

$('input:checkbox.modifier').change(function () {
            var sThisVal = (this.checked ? $(this).val() : "");
        });

Любая идея, как я могу это решить?

Заранее спасибо, Laziale

ОБНОВИТЬ:

Я хочу получить событие с помощью класса флажка. благодаря

  • 0
    используйте прослушиватель событий mousedown() вместо change() .
  • 1
    Это спрашивают сто раз в неделю, по крайней мере ...
Теги:
checkbox

3 ответа

2
Лучший ответ

Обработчики событий привязаны только к выбранным в данный момент элементам; они должны существовать на странице в момент, когда ваш код выполняет вызов.click()

Когда вы добавляете контент динамически, вы должны использовать,

$(document).on('change', 'input:checkbox.modifier',  function () {
     var sThisVal = (this.checked ? $(this).val() : "");
});

Прочитайте о делегировании событий.

  • 0
    Спасибо, это помогло мне
1

Когда вы динамически создаете флажки, вам нужно настроить обработчик событий следующим образом:

$(document).on("change", "input[type='checkbox'].modifier", function () {
    var sThisVal = (this.checked ? $(this).val() : "");
});
  • 1
    Спасибо за редактирование. Привычка писать селектор jquery внутри "" собирается повесить меня когда-нибудь ..
1

Попробуйте использовать код на событии

 $(document).on('change', 'input:checkbox.modifier',  function () {
        var sThisVal = $(this).is(':checked') == true ? $(this).val() : "";
    });

Ещё вопросы

Сообщество Overcoder
Наверх
Меню