我正在尝试检测何时在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');
});
现在,查看身体的来源我得到了这个:
最后,我正在尝试使用此jquery事件获取已检查/未检查的事件,但没有任何反应:
$('input:checkbox.modifier').change(function () {
var sThisVal = (this.checked ? $(this).val() : "");
});
知道如何解决这个问题吗?
提前致谢,Laziale
更新:
我想通过复选框类获取事件。 感谢
答案 0 :(得分:3)
事件处理程序仅绑定到当前选定的元素;他们 在您的代码调用.click()
时,页面上必须存在
在动态添加内容时,您应该使用
$(document).on('change', 'input:checkbox.modifier', function () {
var sThisVal = (this.checked ? $(this).val() : "");
});
了解委派活动。
答案 1 :(得分:1)
尝试使用on event
进行编码 $(document).on('change', 'input:checkbox.modifier', function () {
var sThisVal = $(this).is(':checked') == true ? $(this).val() : "";
});
答案 2 :(得分:1)
当你动态创建复选框时,你必须像这样设置事件处理程序:
$(document).on("change", "input[type='checkbox'].modifier", function () {
var sThisVal = (this.checked ? $(this).val() : "");
});