我需要使用jQuery动态构建表单。此表单具有项目的复选框列表。我正在建立这样的清单:
function initializeForm()
{
var html = '';
var items = GetItems();
for (var i=0; i<items.length; i++) {
html += '<div><input id="item' + item.ItemId + '" data-toggle="itemCheckBox" name="SelectedItemIds" value="' + item.ItemId + '" type="checkbox" /> ' + item.Name + '</div>';
}
$('#itemList').html(html);
}
我试图使用以下命令对用户单击复选框之一作出反应:
$('input[data-toggle="itemCheckBox"]').change(function() {
alert('here');
if($(this).is(":checked")) {
alert('check');
} else {
alert('uncheck');
}
});
不幸的是,此事件处理程序永远不会触发。我不明白为什么。我的选择器对我来说看起来正确。有人可以告诉我我在做什么错吗?
问题在于事件处理程序未绑定,因为元素是在页面加载后添加到DOM的。这应该做到这一点:
$('body').on('change', 'input[data-toggle="itemCheckBox"]', function() {
alert('here');
if($(this).is(":checked")) {
alert('check');
} else {
alert('uncheck');
}
});
这会将事件绑定到选择器。http://api.jquery.com/on/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句