2010-09-28 32 views
9

Tôi có hai nút: btnAddbtnUpdate. Tôi đã viết một hàm jquery cho nút btnUpdate để xác nhận một số lĩnh vực trong trang web như:cùng chức năng cho hai nút trong jQuery

$(function() { 

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

Tôi muốn làm điều tương tự khi btnAdd được nhấp. Vì vậy, tôi phải viết lại hàm tương tự cho btnAdd. Có cách nào khác để tránh điều này không?

(Nếu tôi viết một hàm javascript và gọi chức năng tương tự trong trường hợp nút bấm của cả hai nút, nó là tốt. Nhưng là có cách nào sử dụng jQuery?)

Trả lời

17

Chỉ cần chắc một lựa chọn gồm hai nút, được phân tách bằng dấu phẩy: ("#add, #update").click... Có vẻ như thế này trong mã của bạn:

$(function() { 

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

bạn nên đề cập đến rằng Refactoring là một bước tiến lớn trong việc phát triển. – balexandre

7

Có hai cách.

(1) Chọn cả hai yếu tố cùng một lúc và áp dụng các xử lý sự kiện cho họ:

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

(2) Cho hàm số một cái tên, chứ không phải rời khỏi vô danh:

function clickHandler() { 
    // code here 
} 

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

jQuery là một khung công tác JavaScript, không phải ngôn ngữ khác, vì vậy bạn có thể viết một hàm JavaScript tại đây.

function validateFields(e) { 
    code here; 
} 

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

Chúng tôi gọi đây Refactoring và đó là cái gì đó sẽ giúp bạn tất cả các cách, đọc thêm về, đầu tư vào bản thân và mua một trong những tuyệt vời và chỉ Refactoring book

trong trường hợp của bạn, bạn nên làm điều này:

$(function() { 

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

}); 

function validate(myButton) 
{ 
    // code here 
} 

Vì bạn phải luôn làm.

nhưng như jQuery bạn có thể có bộ chọn với nhiều đầu vào, vì vậy tất cả các bạn cần làm là:

$('#<%=btnUpdate.ClientID %>, #<%=btnAdd.ClientID %>').click(function() { 
    validate($this); 
} 
Các vấn đề liên quan