web-dev-qa-db-fra.com

<tr> onClick ne fonctionne pas

Je veux transformer mes lignes de table en liens à l'aide de JS. Je l'ai comme ceci:

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

Cependant, lorsque j'essaie de cliquer, la page ne s'affiche pas comme je le souhaite. En fait, cliquer ne semble avoir aucune action.

De l'aide?

Éditer:

Quant aux citations, j'ai oublié de mentionner que j'en fais écho avec PHP. Voici mon code mis à jour:

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

Dois-je faire une sorte d'évasion comme /" dans ce cas?

16
AKor

Tout d'abord, no javascript: dans les gestionnaires d'événements - ils contiennent du code JavaScript, pas une URL. Cela fonctionne simplement parce que javascript: est une étiquette dans ce cas et donc pas une erreur de syntaxe. En plus de cela, tout éditeur avec une coloration syntaxique appropriée vous aurait montré que vous rompez les guillemets car vous utilisez des guillemets simples pour l'attribut HTML et à l'intérieur de l'attribut.

Voici le code fixe:

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

En plus de cela, les gestionnaires d'événements en ligne sont sales. Mieux les attacher joliment en utilisant jQuery:

$('tr').click(function() {
    location.href = 'url';
});
24
ThiefMaster

Comme vous le savez, les attributs HTML doivent être entourés de guillemets, donc si vous avez besoin de guillemets dans l'attribut, vous avez besoin d'un appariement différent. Essaye ça:

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

Et si vous êtes dans une boucle et que vous faites écho, essayez la syntaxe HEREDOC de PHP.

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

Edit: ajouté HEREDOC

1
Jeremy Conley