2011-03-16 9 views
14

Quiero convertir las filas de mi tabla en enlaces usando JS. Lo tengo con este aspecto:<tr> onHaga clic en no funcionar

<tr onClick='javascript:window.location.href='url';'> 

Sin embargo, cuando trato de hacer clic, no entra la página como yo quiero. De hecho, al hacer clic no parece haber ninguna acción.

¿Algún ayuda?

Editar:

En cuanto a las cotizaciones, se me olvidó mencionar que estoy haciendo eco de esto con PHP. Aquí está mi código actualizado:

echo "<tr onClick='window.location.href='url?id=" . $var . "';'></tr>"; 

debería hacer algún tipo de escape como /" en este caso?

Respuesta

20

En primer lugar, sin javascript: en manejadores de eventos - que contiene código JavaScript, no una URL. Simplemente funciona porque javascript: es una etiqueta en este caso y, por lo tanto, no es un error de sintaxis. Además de eso, cualquier editor con resaltado de sintaxis adecuado le habría mostrado que está rompiendo las citas ya que está usando comillas simples para el atributo HTML y dentro del atributo.

Aquí está el código fijo:

<tr onclick="window.location.href = 'url';"> 

Además de eso, los controladores de eventos en línea están sucios. Mejor adjuntarlos bien usando jQuery:

$('tr').click(function() { 
    location.href = 'url'; 
}); 
+6

Esta es una pregunta "javascript" no es un jQuery y no se puede animar a eso. Que preocupacion – miqbal

+8

@moses, si una herramienta es mejor para el trabajo que la solicitada, por supuesto, ofrézcala. –

+0

Por supuesto que puedo alentar eso. Mirando su código, Sennheiser es claramente un principiante de Javascript y escribirá mejor JavaScript si no está jugando con JS. – ThiefMaster

1

Como saben, los atributos HTML tienen que ser entre comillas, así que si necesitas cotizaciones dentro el atributo que necesita una pareja diferente. Pruebe esto:

<tr onClick="window.location.href='url';"> 

Y si está dentro de un bucle y haciendo eco, pruebe la sintaxis HEREDOC de PHP.

$out = ''; 
foreach ($x as $y) 
{ 
$out .= <<<HTML 
<tr onClick="window.location.href='url';"> 
HTML; 
} 
echo $out; 

Editar: heredoc añadido

+0

Estoy haciendo esto dentro de un bucle de PHP, por lo que ya tengo comillas dobles como comillas exteriores, y el resto son comillas simples. – AKor

+0

Ver mi edición a la respuesta anterior. –

+0

$ out. = ""; – miqbal

Cuestiones relacionadas