私のウェブサイトには、ナビゲーションリンクを表す画像を含むナビゲーションリストがあります。imgsrcをより暗いバージョンの画像に変更するonmouseoverjavascript関数を作成しました。
ナビゲーションに複数のリスト要素がある場合(ナビゲーション内のリスト要素の数は動的である)、javascript関数が機能しないことを認識しました。ただし、1つの要素については機能します。
今私はエラーを見つけました:画像はwhile関数で作成されるため、常に同じIDを持ちます。したがって、複数のナビゲーション要素がある場合、同じIDで呼び出される複数の画像があり、もちろんjavascript関数はそれらを参照できません。 。
ひどく、問題を解決するのは非常に難しいと思います。次のアプローチが機能しない理由を誰かに教えてもらえますか?
<html>
<head>
<script
language="JavaScript">
function over(source,c) {
c.src = "Images/List/streams/"+source+"_mo.png";
}
function out(source,c) {
c.src = "Images/List/streams/"+source+".png";
}
</script>
</head>
<body>
<?php
...
while($row_player = mysql_fetch_object($players)) {
$image = 'pic'.$row_player->Id;
echo "<a href=".$row_player->Page." target=_parent
onmouseover= over(".$row_player->Id,$image.")
onmouseout = out(".$row_player->Id,$image.")>
<li>
<img id=".$image." src=Images/List/streams/".$row_player->Id.".png>
</li>
</a>";
}
...
?>
</body>
</html>
これは私が最初に使用したコードであり、1つの要素に対してのみ機能します
<html>
<head>
<script
language="JavaScript">
function over(source) {
pic.src = "Images/List/streams/"+source+"_mo.png";
}
function out(source) {
pic.src = "Images/List/streams/"+source+".png";
}
</script>
</head>
<body>
<?php
...
while($row_player = mysql_fetch_object($players)) {
echo "<a href=".$row_player->Page." target=_parent
onmouseover= over(".$row_player->Id.")
onmouseout = out(".$row_player->Id.")>
<li>
<img id=pic src=Images/List/streams/".$row_player->Id.".png>
</li>
</a>";
}
...
?>
</body>
</html>
ちなみに、whileループはすべてエコーになっています。