Onclick trong javascript

Chào mọi người, em là newbie học javascript.
Mọi người cho em hỏi khi em viết sự kiện onclick trong html thì em không phải viết trong hàm, nhưng khi em viết trong script thì lại phải viết trong hàm nó mới chạy được. Tại sao thế ạ.
Em cảm ơn mn nhiều.
image

Tại vì bạn chưa đọc tài liệu
Xe đạp không cần xăng để chạy, nhưng không cod nghĩa xe nào cũng giống xe đạp

7 Likes

Cần hiểu sự kiện (event) là cái quái gì, tương tác giữa HTML và JavaScript ra sao.

  1. Cách truyền thống: onclick đặt ngay trong dòng HTML, giá trị của nó là một hoặc nhiều statement của JavaScript, statement là gì thì học lập trình ai cũng biết. Tạm hiểu thô thiển: lời gọi hàm cũng là statement.
  2. Cách hiện đại (tạm hiểu là “hậu” thời đại của Internet Explore 7.x): gọi hàm bằng cách “lắng nghe” các sự kiện xảy ra với element nào đó. Cách này hiện nay đang được dùng phổ biến hơn cách truyền thống.

Chủ topic đang áp dụng 2 cách đồng thời, và có vẻ bắt tay vào viết JavaScript khi mà còn gà mờ về HTML, CSS. Dẫn đến hậu quả nhãn tiền: không hiểu được element được xác định như thế nào trong bối cảnh DOM. Rồi thêm các khái niệm như tag name, class, id, selector,… ra mần răng. Chưa ngồi thực hành đủ nhiều, viết ra hàng trăm file HTML có CSS để hiểu được nếu có sự tham khảo đến một element từ nhiều ngữ cảnh khác nhau, độ ưu tiên của các selector, liệu có cái nào xung đột cái nào?

Lời khuyên: cần phải kiên nhẫn, lỳ đòn để đọc sách (tụng ít nhất 3 cuốn về JavaScript hoặc ECMAScript và hiểu 75% như dân quản trị mạng Ciso luyện thi CCIE vậy) cho hiểu rõ các thứ rồi mới làm. Các tutorial trên mạng chỉ là “mì ăn liền”, và chưa thấy mì ăn liền nào có thể giải quyết được vấn đề dinh dưỡng lâu dài của một gia đình. Tương tự, cứ nhai “mì ăn liền” trong code sẽ không bao giờ có thể trở thành coder thực thụ. Nếu vẫn thấy không đủ trình tiếng Anh để đọc các cuốn sách như JavaScript: The Definitive Guide thì cũng nên biết trang MDN của nhà Cáo Lửa là nơi tham khảo tốt nhất về JavaScript.

6 Likes

dạ cảm ơn anh nhiều ạ!!

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?