web-dev-qa-db-ja.com

<tr> onClickが機能しない

JSを使用してテーブルの行をリンクに変換したい。私はそれを次のように見せています:

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

しかし、クリックしようとすると、ページが思い通りに表示されません。実際、クリックしても何も起こらないようです。

何か助け?

編集:

引用に関して言えば、私はこれをPHPに反映していることを忘れていました。これが私の更新されたコードです:

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

この場合、/"のようなエスケープを行う必要がありますか?

16
AKor

まず、no javascript: in event handlers-URLではなくJavaScriptコードが含まれます。 javascript:はこの場合のラベルであり、構文エラーではありません。その上、適切な構文強調表示を備えたエディタは、HTML属性と属性の内部に単一引用符を使用しているため、引用符を壊していることを示しています。

修正されたコードは次のとおりです。

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

その上、インラインイベントハンドラーはダーティです。 jQueryを使用してそれらを適切に接続する:

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

ご存じのとおり、HTML属性は引用符で囲む必要があるため、引用符が必要な場合はwithin属性に別のペアリングが必要です。これを試して:

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

そして、あなたがループの中にいて、何かをエコーし​​ているなら、PHPのHEREDOC構文を試してください。

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

編集:HEREDOCを追加

1
Jeremy Conley