我有一些图像,我想要做的是鼠标在每张照片上更改div内的文字,即图像标题。
所以这是我的代码:
<?php
...
$i=0;
while($i<$imageno)
{
echo'
<script type="text/javascript">
function changeText() {document.getElementById("title").innerHTML = "'.$title[$i].'";}
</script>';
if ($imagine[$i]){
echo '<div onmouseover="changeText()"><img src="'.$imagine[$i].'"></div>';
};
$i++;
}
...
?>
但是我的剧本只显示了我最后一张照片的描述......
请帮忙! ......没有Ajax
答案 0 :(得分:3)
您需要将变量传递给changeText
函数:
echo '<div onmouseover="changeText('".$title[$i]."')"><img src="'.$imagine[$i].'"></div>';
并改变changeText
这样的功能:
function changeText( myText ) {document.getElementById("title").innerHTML = myText;}
答案 1 :(得分:1)
您不需要将函数定义放在循环中,您需要使用参数。
<script type="text/javascript">
function changeText(title) {document.getElementById("title").innerHTML = title;}
</script>
<?php
//...
$i=0;
while($i<$imageno) {
if ($imagine[$i]){
$title = json_encode(htmlspecialchars($title[$i]));
echo '<div onmouseover="changeText('.$title.')"><img src="'.$imagine[$i].'"></div>';
};
$i++;
}
//...
?>