我有一个名为 applyToDetailRows 的函数,我在加载时调用它,以及当我的页面的输入部分通过 ajax 重新绘制时调用。此函数将一堆事件附加到绘制的输入字段。字段上的事件之一是模糊,它触发 ajax 调用以获取学生信息。问题是每次页面加载每个字段时都会触发 blur ajax 触发器,而不是在 blur 上触发。只有当函数在 applyToDetailRows 中定义时才会发生这种情况。如果我将它从 applyToDetailRows 中拉出来,它就可以正常工作。
需要注意的一件事是,我也以类似的方式在 applyToDetailRows 中定义了自动完成功能,并且效果很好。但不是这个。
function applyToDetailRows() {
$(":input[data-getstudent]").each(function() {
$(this).on('blur', function () {
var elem = this;
$.ajax({
url: $(elem).attr('data-getstudent'),
dataType: "json",
data: {
studentNumber: $(elem).val()
},
success: function (result) {
}
});
});
});
}
/* some other definitions */
//applyToDetailRows called
applyToDetailRows();