Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Nên dùng "#" hay "javascript:void(0)" cho liên kết JavaScript?

So sánh hai cách viết

Khi tạo liên kết chỉ để gán sự kiện JavaScript (không chuyển trang), "javascript:void(0)" tốt hơn "#" vì:

  • Không cuộn trang lên đầu (anchor "#" làm nhảy về top).
  • Không thêm mục vào lịch sử trình duyệt.
  • Hiệu năng tốt hơn một chút.

Cơ chế của void(0)

Toán tử void đánh giá biểu thức và trả về undefined. Cú pháp javascript:void(0) thực thi mã nhưng không trả giá trị nào cho trình duyệt, nên trang không tải lại.

Ví dụ thực hành

<!DOCTYPE html>
<html>
<head>
  <title>Hiểu javascript:void(0)</title>
</head>
<body>
  <a href="javascript:void(0);" ondblclick="alert('Click it twice!')">
    Click me not once, but twice.
  </a>
</body>
</html>

Lời khuyên hiện đại

Thay vì dùng href="javascript:void(0)", hãy dùng thẻ <button> hoặc <span> với CSS cursor: pointer và gán sự kiện click bằng addEventListener. Cách này ngữ nghĩa hơn, truy cập tốt hơn và tránh rối loạn URL.