2011-10-14 25 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); 
相關問題