2013-04-15 45 views
72

HTML & JSGọi hai chức năng từ cùng onclick

Làm thế nào để gọi 2 chức năng từ một sự kiện onclick? Đây là mã của tôi

<input id ="btn" type="button" value="click" onclick="pay() cls()"/> 

hai hàm là pay() và cls(). Cảm ơn!

+24

Xin chào dấu chấm phẩy, người kết thúc câu lệnh thân yêu. 'pay(); cls() ' – elclanrs

+3

Có gì bên trong dấu ngoặc kép của bạn chỉ là javascript. Phân tách các câu lệnh java bằng dấu chấm phẩy. tức là: 'pay(); cls(); ' – Kyle

Trả lời

128

Thêm dấu chấm phẩy ; đến hết chức năng gọi theo thứ tự cho cả hai để làm việc.

<input id="btn" type="button" value="click" onclick="pay(); cls();"/> 

Tôi không tin người cuối cùng là cần nhưng hey, cũng có thể thêm nó vào cho biện pháp tốt.

Đây là một tài liệu tham khảo tốt từ SitePoint http://reference.sitepoint.com/html/event-attributes/onclick

14

Bạn có thể gọi các chức năng từ bên trong một chức năng

<input id ="btn" type="button" value="click" onclick="todo()"/> 

function todo(){ 
pay(); cls(); 
} 
+6

Đã hơn một năm kể từ câu trả lời này, và chỉ bây giờ tôi mới nhận thấy chúng tôi đã đăng cùng một câu trả lời cùng một lúc (nhưng bạn đã đánh bại tôi một phút, vì vậy hãy +1 của tôi). – Renan

29

Bạn có thể tạo một chức năng duy nhất mà các cuộc gọi cả của những người, và sau đó sử dụng nó trong sự kiện này.

function myFunction(){ 
    pay(); 
    cls(); 
} 

Và sau đó, đối với các nút:

<input id="btn" type="button" value="click" onclick="myFunction();"/> 
+2

nó có thể được thực hiện, nhưng có vẻ với tôi nó không phải là quá minh bạch hoặc nó có thể được đặt tên tương tự như một cái gì đó như funtion1_function2(), trong trường hợp funcitons không liên quan. – Muflix

4

Hãy thử điều này

<input id ="btn" type="button" value="click" onclick="pay();cls()"/> 
7

Với jQuery:

jQuery("#btn").on("click",function(event){ 
    event.preventDefault(); 
    pay(); 
    cls(); 
}); 
6

Chỉ cần để cung cấp một số đa dạng, các comma operator thể được sử dụng quá nhưng một số sức mạnh nói "noooooo!", nhưng nó hoạt động:

<input type="button" onclick="one(), two(), three(), four()"/> 

http://jsbin.com/oqizir/1/edit

5
onclick="pay(); cls();" 

tuy nhiên, nếu bạn đang sử dụng một tuyên bố trở lại trong chức năng "trả tiền" việc thực hiện sẽ dừng lại và "cls" sẽ không thực hiện,

một workaround này:

onclick="var temp = function1();function2(); return temp;" 
5

đặt dấu chấm phẩy giữa hai hàm làm trình kết thúc câu lệnh.

6

Các sự kiện ràng buộc từ html KHÔNG được khuyến nghị. Đây là cách được đề xuất:

document.getElementById('btn').addEventListener('click', function(){ 
    pay(); 
    cls(); 
}); 
Các vấn đề liên quan