2011-08-20 97 views
2
var fields = ["FirstName", "LastName", "Profession", "Address", "City", "State", "Phone", "Email", "Message"]; 
$.each(fields, function() 
{ 
    var $this = $("#" + this); 
    $this.bind("focus", function() 
    { 
     // 
    }); 
}); 

是否有更好的方法將事件方法綁定到數組?事情是這樣的:將ID數組綁定到事件處理程序

$.each(fields).bind("focus", function() 
{ 
    // 
}) 

回答

1

你就不能放棄所有這些因素同一個類,做:

$('.classname').bind("focus", function() 
{ 
    // 
}); 
4

你可以這樣做:

var fields = ["FirstName", "LastName", "Profession", "Address", "City", "State", "Phone", "Email", "Message"]; 
fields = "#" + fields.join(", #"); 
$(fields).bind("focus", function() 
{ 
    //Your function 
}); 

但也最好是給所有的元素類和綁定像這樣:

$(".focusDoFunc").bind("focus", function() 
{ 
    //Your function 
}); 
0

爲所有這些元素指定一個通用類名「formFields」,並使用delegate在表單級附加事件處理函數。你不要這樣,有事件處理程序附加到每個元素的形式

$("formSelector").delegate(".formFields", "focus", function(){ 
    //Here do your stuff 
}); 

內如果你想擁有連接到表單中的所有元素focus事件,那麼你甚至都不需要添加一個類,所以可以使用input,selecttextarea選擇器。只要做到這一點

$("formSelector").delegate("input, select, textarea", "focus", function(){ 
    //Here do your stuff 
}); 
相關問題