我正在使用jQuery 1.6.2
当我的页面加载时,我运行一个循环来查找输入字段,计算它们所需的大小,并调整它们的大小。这是功能:
// MINIMIZE TEXT FIELDS ON LOAD
$(":text").each(function() {
var MyString = $(this).val();
var MyMax = $(this).attr("maxlength");
var MySize = minimizeText(MyString, MyMax);
$(this).attr("size", MySize);
});
循环访问此功能:
var minimizeText = function minimizeText(MyString, MyMax) {
var MyLength = MyString.length;
var MySize = MyLength + 5;
if (MySize < MyMax && MySize < 50) {
return MySize;
} else if (MyMax > 50 ) {
return 50;
} else {
return MyMax;
}
}
如果用户更改输入字段中的文本,则会重新计算大小以适合字段中的文本。
// MINIMIZE TEXT FIELDS ON KEYUP
$(":text").keyup(function() {
var MyString = $(this).val();
var MyMax = $(this).attr("maxlength");
var MySize = minimizeText(MyString, MyMax);
$(this).attr("size", MySize);
});
这两项都非常有效。我的目标是压缩此代码并使其可读。我的问题是如何将这两者结合起来,以便在加载和加密时检查文本字段?
答案 0 :(得分:0)
您的keyup处理程序与您传递给.each()
的初始调用的函数相同。您可以定义单个函数并将其作为参数传递。例如
function resize_handler() { ... }
$(':text').keyup(resize_handler).each(resize_handler);