var fields = ["FirstName", "LastName", "Profession", "Address", "City", "State", "Phone", "Email", "Message"];
$.each(fields, function()
{
var $this = $("#" + this);
$this.bind("focus", function()
{
//
});
});
有没有更好的方法将事件方法绑定到数组?像这样:
$.each(fields).bind("focus", function()
{
//
})
答案 0 :(得分: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
});
答案 1 :(得分:1)
你不能只把所有这些元素都放在同一个类上并且这样做:
$('.classname').bind("focus", function()
{
//
});
答案 2 :(得分:0)
为所有这些元素提供一个公共类名“formFields”,并使用delegate
在表单级别附加事件处理程序。这样你就不必将事件处理程序附加到表单
$("formSelector").delegate(".formFields", "focus", function(){
//Here do your stuff
});
如果您希望将focus
事件附加到表单中的所有元素,那么您甚至不需要添加我们可以使用的类input
,select
和{{1选择器。就这样做
textarea