2011-11-16 26 views
12

Cómo llamar a una función de JavaScript desde la etiqueta href en html? He creado algunas pestañas. Quiero que cuando el usuario haga clic en cualquier pestaña, se llame al href junto con la función de JavaScript. ¿Cómo puedo hacerlo?Cómo llamar a una función de JavaScript desde la etiqueta href en html?

<?php if($order == 1){ ?> 
<li class="cat-one"><a href= "javascript:loadProducts($categoryId)" > <?php echo $categoryName ?> </a></li> 
<?php } ?> 

Ésta es mi Javascript

<script type="javascript" > 
function loadProducts($categoryId) 
{ 
    alert("Hello World!"); 
    return false; 
} 

</script> 
+0

¿Tiene algún código para mostrarnos? – Fluff

+0

Necesita compartir algún código si quiere ayuda. Si desea mostrar una pestaña y ejecutar una función de JavaScript cuando el usuario hace clic en esa pestaña, generalmente la resolvería sin el código del lado del servidor, es decir, sin PHP. –

+0

Tiene que marcar la diferencia entre las acciones del servidor y del lado del cliente. PHP solo está disponible en el servidor. HTML, CSS y Javascript solo están disponibles en el lado del cliente. La etiqueta a, con el atributo 'href' es solo un elemento HTML, además del lado del cliente, solo. – reporter

Respuesta

21

En la etiqueta href, sin especificar un enlace, especifique el nombre de la función JavaScript.

Por ejemplo

<a href='javascript:myFunction()'> Click Me! <a/> 
+0

en ie9 esto hace que la función se ejecute y se aleje de la página. Nunca use para hacer eso en ie7. soluciones? – stu

6

No utilice el href, utilice el atributo onclick para este

<a href="http://www.example.com" onclick="return confirm('are you sure?')">test</a> 

ver this example

EDITAR (ya que el código añadido en cuestión): esto debería llamar a su función JS:

<?php if($order == 1){ ?> 
    <li class="cat-one"> 
    <a href="javascript:void(0)" onclick="loadProducts(<?php echo $categoryId ?>)"> 
     <?php echo $categoryName ?> 
    </a> 
    </li> 
<?php } ?> 
+0

y cómo puedo escribir una función cuando mis etiquetas

0

Si tiene biblioteca jQuery puede llamar a la clase:

$(".loadProducts").click(function(event) { 
     // Default action of the event will not be triggered. 
     event.preventDefault(); 
     // Get category ID 
     var categoryId = $(this).attr('data-categoryid'); 
     // TODO 
     alert("Hello World!"); 
     return false; 
}); 

Por:

<li class="cat-one"><a href="#" class="loadProducts" data-categoryid="<?php echo $categoryId;?>" > <?php echo $categoryName ?> </a></li> 
Cuestiones relacionadas