Я пытаюсь обнаружить, когда флажок установлен или не установлен в 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');
});
Теперь, просматривая источник тела, я получаю следующее:
Наконец, я пытаюсь получить событие checked/unchecked с этим событием jquery, но ничего не происходит:
$('input:checkbox.modifier').change(function () {
var sThisVal = (this.checked ? $(this).val() : "");
});
Любая идея, как я могу это решить?
Заранее спасибо, Laziale
ОБНОВИТЬ:
Я хочу получить событие с помощью класса флажка. благодаря
Обработчики событий привязаны только к выбранным в данный момент элементам; они должны существовать на странице в момент, когда ваш код выполняет вызов.click()
Когда вы добавляете контент динамически, вы должны использовать,
$(document).on('change', 'input:checkbox.modifier', function () {
var sThisVal = (this.checked ? $(this).val() : "");
});
Прочитайте о делегировании событий.
Когда вы динамически создаете флажки, вам нужно настроить обработчик событий следующим образом:
$(document).on("change", "input[type='checkbox'].modifier", function () {
var sThisVal = (this.checked ? $(this).val() : "");
});
""
собирается повесить меня когда-нибудь ..
Попробуйте использовать код на событии
$(document).on('change', 'input:checkbox.modifier', function () {
var sThisVal = $(this).is(':checked') == true ? $(this).val() : "";
});
mousedown()
вместоchange()
.