2010-09-28 99 views
9

我有两个按钮:btnAddbtnUpdate。我已经写了按钮btnUpdate一个jQuery功能来验证网页像一些领域:jQuery中两个按钮的功能相同

$(function() { 

    $('#<%=btnUpdate.ClientID %>').click(function() { 
    code here 
    }); 
}); 

我想做同样的事情被点击btnAdd时。所以我必须再次为btnAdd编写相同的函数。有其他方法可以避免这种情况吗?

(如果我写了一个JavaScript函数,并呼吁在两个按钮的按钮单击事件相同的功能,它的罚款,但有使用jQuery什么办法?)

回答

17

只是要由逗号分隔的两个按钮的选择:("#add, #update").click... 在您的代码中看起来像这样:

$(function() { 

    $('#<%=btnUpdate.ClientID %>, #<%=btnAdd.ClientID %>').click(function() { 
    code here 
    }); 
}); 
+0

你应该提到,重构是在发展的一大步。 – balexandre 2010-09-28 08:03:11

7

有两种方法。

(1)一次选择两个元素和应用事件处理程序对他们说:

$(function() { 
    $('#<%=btnUpdate.ClientID %>, #<%=btnAdd.ClientID %>').click(function() { 
     code here 
    }); 
}); 

(2)给出的函数的名称,而不是把匿名:

function clickHandler() { 
    // code here 
} 

$('#<%=btnUpdate.ClientID %>, #<%=btnAdd.ClientID %>').click(clickHandler); 
0

jQuery是一个JavaScript框架,而不是另一种语言,因此您也可以在这里编写一个JavaScript函数。

function validateFields(e) { 
    code here; 
} 

$(function() { 
    $('#<%=btnUpdate.ClientID %>').click(validateFields); 
    $('#<%=btnAdd.ClientID %>').click(validateFields); 
}); 
6

我们称之为Refactoring,它的东西,这将帮助你一路走好,阅读更多有关,投资自己买了梦幻般的唯一Refactoring book

你的情况,你应该这样做:

$(function() { 

    $('#<%=btnUpdate.ClientID %>').click(function() { 
     validate($this); 
    }); 
    $('#<%=btnAdd.ClientID %>').click(function() { 
     validate($this); 
    });  

}); 

function validate(myButton) 
{ 
    // code here 
} 

正如你应该总是做

但jQuery的你可以有选择的多输入,因此,所有你需要做的是:

$('#<%=btnUpdate.ClientID %>, #<%=btnAdd.ClientID %>').click(function() { 
    validate($this); 
}