2011-10-14 24 views
0

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

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

function resize_handler() { ... } 
$(':text').keyup(resize_handler).each(resize_handler); 
相关问题