2016-08-08 29 views
1

ich möchte JavaScript setzen: void (0) mit #map tabs in h ref. Ich möchte JavaScript: void (0) einstellen, das dafür verantwortlich ist, die Webseite nicht bei Klick zu laden. #map ist tab .so ich möchte sowohl JavaScript: void (0) als auch #map setzen. mein Codeist es möglich, javascript: void (0) mit #map für Tabs in href zu setzen?

<li><a data-toggle="tab" href="#map" href="javascript:void(0)" onclick="getvalue('+val['product_id']+');" id="maptab">map</a></li> 
+0

Es sieht aus wie Sie Bootstrap verwenden. Wenn ja, müssen Sie das nicht tun; Bootstrap verhindert die Standardaktion des "a" -Elements der Registerkarte. –

Antwort

1

Keine Notwendigkeit, beide verwenden tatsächlich können Sie .preventDefault() verwenden, wenn Sie Javascript-Funktion für dieses <a> schreiben.

$('li a').click(function(e){ 
    e.preventDefault(); 
    //... other code of function 
}) 

.preventDefault() verhindert, dass die Standardfunktion des Elements. damit wird das Laden der Seite verhindert.

0

Die kürzeste Änderung an Ihren Code ist, dass die zweiten href (Sie haben zwei nicht Kopien des gleichen Attributs) zu entfernen und fügen Sie einfach return false; zu Ihrem onclick vorhanden:

<li><a data-toggle="tab" href="#map" onclick="getvalue('+val['product_id']+');return false;" id="maptab">map</a></li> 
<!-- Note --------------------------------------------------------------------^^^^^^^^^^^^^ ---> 

return false; in einem onxyz Attribut-Handler verhindert die Standardaktion, die dem Link folgt; mehr in meinem Blogpost The true store on return false.


Das heißt, ich schlage vor, zu vermeiden onxyz Attribut-Handler für data-* Attribute (soweit erforderlich) und Event-Handling delegiert.