2011-05-05 80 views
0

我有一个小问题,我想要一个div显示,当有人悬停在图像上,问题是这个图像是在php内部,而那里的document.getElementById不起作用。有没有办法解决这个问题?php getElementById

<?php echo "<img onmouseover='xxxxxx' src='img/img.png'>" ?> 

x在哪里?

+1

getElementById不起作用的原因是因为没有图像的id属性。无论是从PHP或其他地方派生的HTML都是无关紧要的。 – 2011-05-05 14:17:16

+0

你不能编辑PHP来添加ID吗? – 2011-05-05 14:17:41

+0

我可以添加一个id,问题是当有人悬停在图像上时,我必须得到div的ID,然后将css代码从display ='none'更改为display ='block' – 2011-05-05 14:20:51

回答

2

你需要在这里的代码这一行回显到客户端将处理onmouseover事件,像这样的网页创建一个javascript函数:我有一个小问题

<html> 
<head> 
<script language="javascript" type="text/javascript"> 
function imageSwap() { 
    var img = document.getElementById("img1"); 
    //swap out the image... 
} 
</script> 
</head> 
<body> 
<?php echo "<img id='img1' onmouseover='imageSwap()' src='img/img.png'>" ?> 
</body> 
</html> 
+0

谢谢,我试过了以前和它没有工作,似乎现在工作:) – 2011-05-05 14:25:05

1

,我想一个div来显示,当有人悬停在图像

确保信息访问谁不使用指点设备太

问题是,这个图像是在php内部,而那里的document.getElementById不起作用。

您误诊了这个问题。 PHP在服务器上运行并将其输出发送到客户端。它不能阻止某些东西的工作(尽管它可以写得很糟糕,所以它输出了你不期望的东西)。

如果您认为PHP是造成您的问题的原因,那么您需要停止询问“为什么嵌入在此PHP中的JS不起作用?”并开始问“为什么从PHP输出的JS不同于我想写的JS?”

x是怎么回事?

很难说没有看到代码的其余部分。

这取决于你为什么不能看到div在第一个地方。它是不可见的?它没有显示?它不是文档的一部分吗?它被其他东西掩盖了吗?等等。

作为一个经验法则,你应该避免内在的事件属性,而倾向于通过存储在外部文件中的JavaScript分配事件处理程序。这是unobtrusive JavaScript的一部分。

1

你可以改变布赖恩·德里斯科尔的代码,使其动态,像这样:

<html> 
<head> 
<script language="javascript" type="text/javascript"> 
function imageSwap(el) { 
    var img = el.id; 
    //swap out the image... 
} 
</script> 
</head> 
<body> 
<?php echo "<img id='img1' onmouseover='imageSwap(this)' src='img/img.png'>" ?> 
</body> 
</html> 

这样,你将永远有您的徘徊上的图像正确的ID。不管图像的数量多少

+0

不错的一个 - 绝对是我会在生产中做什么。 – 2011-05-05 16:20:03