我有一个绑定不同表单输入的函数
function bindInputs() {
$(".inputContainer").each(function(i){
var inputContainer = $(this),
input = $("input.input", inputContainer),
inputType = inputContainer.attr("data-inputType"),
input_Id = inputContainer.attr("id").replace("inputContainer_", "");
if(inputType == "TextEditor") {
input.unbind("change").bind("change", function() {
inputContainer.removeClass("nullValue");
var value = input.val();
saveInputValue(input_Id, value);
});
return true;
}
if(inputType == "NumericEditor") {
input.numeric({ allow: "." });
input.unbind("change").bind("change", function() {
inputContainer.removeClass("nullValue");
var value = getNumericValue(input.val());
saveInputValue(input_Id, value);
});
}
// so on
});
};
这个函数会造成内存泄漏吗?我担心的是我将所有共享变量放在最上面并在“更改”回调函数中使用它们。
如果我重新计算回调函数上的共享变量会有所不同吗?
if(inputType == "TextEditor") {
input.unbind("change").bind("change", function() {
var elem = $(this),
inputContainer = elem.closest(".inputContainer"),
input_Id = inputContainer.attr("id").replace("inputContainer_", "");
inputContainer.removeClass("nullValue");
var value = input.val();
saveInputValue(input_Id, value);
});
return true;
}