jQuery中两个按钮的功能相同
问题描述:
我有两个按钮:btnAdd
和btnUpdate
。我已经写了按钮btnUpdate
一个jQuery功能来验证网页像一些领域:jQuery中两个按钮的功能相同
$(function() {
$('#<%=btnUpdate.ClientID %>').click(function() {
code here
});
});
我想做同样的事情被点击btnAdd
时。所以我必须再次为btnAdd编写相同的函数。有其他方法可以避免这种情况吗?
(如果我写了一个JavaScript函数,并呼吁在两个按钮的按钮单击事件相同的功能,它的罚款,但有使用jQuery什么办法?)
答
只是要由逗号分隔的两个按钮的选择:("#add, #update").click...
在您的代码中看起来像这样:
$(function() {
$('#<%=btnUpdate.ClientID %>, #<%=btnAdd.ClientID %>').click(function() {
code here
});
});
答
有两种方法。
(1)一次选择两个元素和应用事件处理程序对他们说:
$(function() {
$('#<%=btnUpdate.ClientID %>, #<%=btnAdd.ClientID %>').click(function() {
code here
});
});
(2)给出的函数的名称,而不是把匿名:
function clickHandler() {
// code here
}
$('#<%=btnUpdate.ClientID %>, #<%=btnAdd.ClientID %>').click(clickHandler);
答
jQuery是一个JavaScript框架,而不是另一种语言,因此您也可以在这里编写一个JavaScript函数。
function validateFields(e) {
code here;
}
$(function() {
$('#<%=btnUpdate.ClientID %>').click(validateFields);
$('#<%=btnAdd.ClientID %>').click(validateFields);
});
答
我们称之为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);
}
你应该提到,重构是在发展的一大步。 – balexandre 2010-09-28 08:03:11