jQuery中两个按钮的相同function
我有两个按钮: btnAdd
和btnUpdate
。 我为按钮btnUpdate
编写了一个jquery函数来validation网页中的某些字段,如:
$(function() { $('#').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);
我们将此称为重构 ,它可以帮助您,阅读更多信息, 投资自己并购买精彩的重构书。
在你的情况下,你应该这样做:
$(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); }
jQuery是一个JavaScript框架,而不是另一种语言,所以你也可以在这里编写一个JavaScript函数。
function validateFields(e) { code here; } $(function() { $('#<%=btnUpdate.ClientID %>').click(validateFields); $('#<%=btnAdd.ClientID %>').click(validateFields); });