2010-02-03 27 views
9

Có lý do nào để sử dụng một trong các cách sau hơn những người khác:Javascript sự kiện inline cú pháp

<input type="button" value="b1" onclick="manageClick(this)" /> 
<input type="button" value="b2" onclick="manageClick(this);" /> 
<input type="button" value="b2" onclick="manageClick(this);return false;" /> 
<input type="button" value="b3" onclick="return manageClick(this);" /> 
<input type="button" value="b4" onclick="javascript:return manageClick(this);" /> 

Và xin đừng dành thời gian quý báu của bạn để cho tôi biết để sử dụng jQuery hoặc attachEvent/addEventListener. Nó không thực sự là mục tiêu của câu hỏi của tôi.

+0

tôi không thể hiểu được mục tiêu câu hỏi của bạn :( – Sarfraz

+0

Tôi có thể cho bạn biết để sử dụng 'input.onclick = manageClick;' và có 'manageClick' nhìn vào' this' Đó là hình thức đơn giản của 'attachEvent' /' addEventListener' cho khi bạn không cần nhiều người nghe – bobince

+0

@ bobince chắc chắn bạn có thể;?..) Nhưng như bạn biết tôi đang trên khuôn mẫu bên cạnh, và chỉ là đặt câu hỏi nếu những "trả về", ";", vv ... có ích hay không. – Mic

Trả lời

8

Không có sự khác biệt nào giữa hai số đầu tiên, trong tình huống cụ thể này, dấu chấm phẩy là tùy chọn.

Người thứ ba sẽ ngăn chặn bất kỳ hành động mặc định xảy ra, trong đó lần đầu tiên hai sẽ không.

Thứ tư sẽ ngăn chặn hành động mặc định hay không tùy thuộc vào giá trị trả về của manageClick.

Thứ năm không chính xác.

(Và bất cứ nơi nào thích hợp, sử dụng attachEvent/addEventListener-vịt và chạy)

+0

vì vậy javascript: manageClick() là cách chính xác để viết? tôi nghĩ javascript: đã không được chấp nhận và chỉ được sử dụng trong các thuộc tính không phải sự kiện. (nhận xét đã chỉnh sửa) –

+0

+1. nhưng tôi muốn thay đổi thành "bất cứ khi nào * thích hợp *, sử dụng' attachEvent'/'addEventListener'", và tôi sẽ tự hỏi bản thân mình nếu nó có. –

+0

@kb: Không, tôi đã nói "javascript: manageClick" là cách * không chính xác * để viết. –

4
<input type="button" value="b3" onclick="return manageClick(this);" /> 

chỉnh sửa Return là một lợi thế trong trường hợp bạn muốn kiểm soát hành vi yếu tố, chẳng hạn như đối với <a><input type="submit">, vì vậy giả định đây là trường hợp, ở trên là câu trả lời của bạn, nếu không chỉ bỏ qua sự trở lại và chỉ đi với onclick="manageClick(this);".

Ngoài ra, hãy xem http://crisp.tweakblogs.net/blog/313/the-useless-javascript-pseudo-protocol.html về việc sử dụng javascript:.^_^