2011-05-05 73 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