2010-08-12 36 views
10

Có giao diện dựa trên javascript - vì vậy tôi không cần phải hỗ trợ công việc mà không có javascript.javascript: void (0) hoặc onclick = "return false" cho <a> - cái nào tốt hơn?

Tôi có một

<a>Something</a> 

yếu tố với mã JS, ràng buộc về sự kiện nhấp chuột - vì vậy, tôi không muốn tải lại trang sau khi nhấp chuột của người dùng.

Cách nào tốt hơn?

1. <a href="javascript:void(0)">Something</a> 
2. <a href="#" onclick="return false;">Something</a> 

Ưu điểm và nhược điểm của từng phương pháp là gì?

+0

Xem thêm: http://stackoverflow.com/questions/134845/href-for-javascript-links-or-javascriptvoid0 http://stackoverflow.com/questions/3451560/ideal-value-for-a-href -when-used-for-a-js-event – CMS

+1

trùng lặp? xem: http://stackoverflow.com/questions/245868/what-is-the-difference-between-the-different-methods-of-putting-javascript-in-an –

Trả lời

10

Cả hai đều là lựa chọn không tốt. Bản trình bày không được kết hợp với nội dung. Điều đó có nghĩa là không có javascript: URI và chắc chắn không có thuộc tính onclick.

Cách làm:

<a id="myLink">Something</a> 
<script> 
    function myFunction(...) { ... } 
    document.getElementById('myLink').addEventListener('click', myFunction, false); 
</script>
+0

Nói chung, đó là một cách thứ hai - sự kiện người nghe. Tôi đã viết onclick = "..." để đơn giản. Tôi sử dụng JQuery - vì vậy $ ("# elementId"). Bind ("click", function() {return false;}); Cảm ơn bạn. –

+0

Bạn nói đúng rằng cả hai đều là lựa chọn tồi, nhưng điều này thậm chí còn tồi tệ hơn: nó không hoạt động trong IE. Và làm thế nào điều này đặt một phần tử '

2

Cả. Nếu liên kết của bạn không đi đến đâu, đừng sử dụng phần tử <a>. Sử dụng một <span> hoặc một cái gì đó khác thích hợp và thêm CSS để tạo kiểu cho nó theo ý muốn của bạn.

Các vấn đề liên quan