2011-08-20 42 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 
}); 
相关问题