如何将初始页面循环功能与键盘功能结合起来?

时间:2011-10-14 14:25:44

标签: jquery

我正在使用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);
});

这两项都非常有效。我的目标是压缩此代码并使其可读。我的问题是如何将这两者结合起来,以便在加载和加密时检查文本字段?

1 个答案:

答案 0 :(得分:0)

您的keyup处理程序与您传递给.each()的初始调用的函数相同。您可以定义单个函数并将其作为参数传递。例如

function resize_handler() { ... }
$(':text').keyup(resize_handler).each(resize_handler);