2010-08-12 18 views
10

Istnieje interfejs oparty na javascript - więc nie muszę wspierać pracy bez javascript.javascript: void (0) lub onclick = "return false" dla <a> - co jest lepsze?

Mam

<a>Something</a> 

elementy z kodu JS, który wiąże się na kliknij zdarzenie - tak, nie chcę Odśwież stronę po kliknięciu użytkownika.

Która droga jest lepsza?

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

Jakie zalety i wady każdej metody?

+0

Zobacz także: http://stackoverflow.com/questions/134845/href-for-javascript-links-or-javascriptvoid0 http://stackoverflow.com/questions/3451560/ideal-value-for-a-ref -when-used-for-a-js-event – CMS

+1

duplikat? zobacz: http://stackoverflow.com/questions/245868/what-is-the-difference-between-the-different- method- of-putting-javascript-in-an –

Odpowiedz

10

Obie są złymi wyborami. Prezentacja nie powinna mieszać się z treścią. Oznacza to, że nie ma żadnych URI URI, a zdecydowanie nie ma atrybutów .

Sposób to zrobić:

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

Ogólnie jest to drugi sposób - zdarzenie słuchacz. Napisałem onclick = "..." dla uproszczenia. Używam JQuery - więc $ ("# elementId"). Bind ("kliknij", function() {return false;}); Dziękuję. –

+0

Masz rację, że oba są kiepskimi wyborami, ale jest jeszcze gorzej: to nie działa w IE. I w jaki sposób umieszczenie elementu '

2

Ani. Jeśli Twój link nie nigdzie nie działa, nie używaj elementu <a>. Użyj opcji <span> lub innej odpowiedniej opcji i dodaj styl CSS, aby styl był taki, jak chcesz.

Powiązane problemy