2011-09-08 21 views
49

Durante l'utilizzo di Google ho scoperto che stanno utilizzando eventi onclick nei tag di ancoraggio.Tag di ancoraggio HTML con evento onclick Javascript

In altro opzione nella parte di intestazione google, sembra un normale tag, ma onclicking non viene reindirizzato ma apre un menu. Normalmente, quando si utilizza

<a href='more.php' onclick='show_more_menu()'>More >>></a> 

E di solito va a 'more.php' senza sparare show_more_menu(), ma ho mostrare un menu in quella pagina stessa. Come fare come google?

risposta

76

Se la funzione onclick restituisce false, il comportamento predefinito del browser viene annullato. In quanto tale:

<a href='http://www.google.com' onclick='return check()'>check</a> 

<script type='text/javascript'> 

function check() 
{ 
    return false; 
} 

</script> 

In entrambi i casi, se Google lo fa o no non è di molta importanza. È più pulito associare le funzioni onclick in javascript: in questo modo si separa il codice HTML da un altro codice.

+2

1. Per essere più sicuri, utilizzare un # a href = "#" e fare le cose necessarie all'interno del javascript. È sicuro fare clic su quel collegamento con # href; la pagina lascia/ricarica l'url. –

32

Da quello che ho capito, non si vuole reindirizzare quando si fa clic sul collegamento. Si può fare:

<a href='javascript:;' onclick='show_more_menu();'>More ></a> 
+0

Ciò è utile quando non si desidera che l'href punti ovunque. – kbpontius

+0

È bello e funziona ma jquery genera un errore "Errore: Errore di sintassi, espressione non riconosciuta: javascript :;" – TheOddCoder

40

si può anche provare sotto opzione:

<a href="javascript:show_more_menu();">More >>></a> 
+0

Attenzione: se la funzione restituisce un valore esplicito (es: 'return null;', ma non 'return;'), questo avrà conseguenze indesiderate in alcuni browser, come FireFox. Alla pagina verrà sostituito tutto il contenuto con il valore restituito in formato stringa (ad esempio: '[oggetto oggetto]'). – rannmann

+0

Mi dà un errore 'La funzione non è definita'. –

Problemi correlati