2010-05-22 9 views
7

Href olmadan (javascript kullanan) çapa yapmanın en iyi crossbrowser yolu gerçek çapa gibi davranır?Hrefsiz ankraj

<a href="javascript:void(0)">link</a> 

Güncelleme: bağlantılı belge anlaşılacağı gibi

+3

Hangi anlamda bir çapa gibi davranın? İmleci açmak ve fareyle üzerine altını çizmek mi? Eğer öyleyse, CSS ile işleri yapmak daha iyi olurdu. – R0MANARMY

cevap

17

Bir do-nothing bağlantı bile atlamaz ... En bariz bir çapa olarak # kullanmaktır ancak sayfa atlamayı yapar

<a href="javascript:undefined">link</a> 

elbette tanımsız yeniden tanımlandı, sürece: void(0) getiri undefined beri (Ambrosia tarafından işaret), aslında olduğu gibi kod yukarıdaki yazmak için daha iyidir.

+1

Bu, void yönteminin amaçlandığı şey değildir. [Kaynak] "ruh yok etme" için https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/void) – SimonDever

5

Bunlar atlamak olmaz: Bununla birlikte, ruh yok ve son derece çirkin olan

​<a href="#null">Click</a> 
​<a href="#n">Click</a> 
<a href="#undefined">Click</a>​ 

.

+8

+1 –

3

Tıklatma etkinliğine tepki veriyorsanız, yalnızca yanlış döndürdüğünüzden ve #hash veya başka bir URL'den hangisinin göz ardı edileceğinden, hrefte ne olduğundan emin olun.

<a href="#anything" onclick="doSomething(); return false;">link</a> 
1

Belki bu çok sorun yok:

<a href="javascript:;">link</a> 
6

Sen çapa ilişkili tıklama işleyicisinden yanlış dönmelidir. Verilen HTML:

document.getElementById('example').onclick = customAnchorReturn; 
function customAnchorReturn() { 
    // do stuff 
    return false; 
} 

veya kullanarak jQuery:

<a id="example" href="/whatever"/> 

JS gibi görünmelidir

$('a#example').click(function(){ 
    // do stuff 
    return false; 
}); 

Bu şekilde, JS mütevazi olacak ve durumda JS devre dışı çapa hala çalışır.

İlgili konular