当我为选择元素添加dinamically选项时,我遇到了问题。 我只在添加选项后注册onChange事件,但无论如何都会触发该事件。 我可以阻止这种行为吗?
$.each(this.formDependentGroupData, function (index, data) {
el = $("*[dependent-group='" + data.dependentGroup + "']");
el.off('change',function (e) { //** this one
alert('ofchange');
e.stopImmediatePropagation();
if ($(this).val()) {
obj.resetLists($('#' + obj.tableId + "_editorForm"), $(this));
obj.dependentLists($(this), $(this).val());
} else {
obj.resetLists($('#' + obj.tableId + "_editorForm"), $(this));
}
});
el.append(data.options);
if (data.val){
el.val(data.val);
el.on('change',function (e) { //** this one
alert('change');
e.stopImmediatePropagation();
if ($(this).val()) {
obj.resetLists($('#' + obj.tableId + "_editorForm"), $(this));
obj.dependentLists($(this), $(this).val());
} else {
obj.resetLists($('#' + obj.tableId + "_editorForm"), $(this));
}
});
}
});
这会添加选项el.append(data.options);
并且事件稍后会被注册,但会被触发。
提前致谢