簡體   English   中英

Javascript DOM更改無效

[英]Javascript DOM changes have no effect

我正在嘗試使用圖像映射構建一個圖形,當您單擊“機翼”時,它將使其看起來像一個按鈕並按下它。

圖像映射已建立,onclick正常,但什么也沒發生?

這是代碼:

<!DOCTYPE html>
<html>
<head></head>
<body>
 <map name="location-map" style="cursor:pointer;">
  <area id="spot_1" onClick="set_spot(this.id)" shape="poly" coords="66,78,122,38,194,15,186,106,174,112,160,118" />
 </map>
 <img src="PH.png" usemap="#location-map" id="spot_1" style="position:absolute;top:0px;left:0px;width:402px;height:302px;" />

 <script type="text/javascript">
  function set_spot(mouse_over_name) {
    document.getElementById(mouse_over_name).style.display="none";
  };
 </script>

</body>
</html>

應該隱藏圖像嗎?

我看過其他解決方案,說JavaScript的位置必須在元素之后。 我在每個位置都嘗試過該腳本,但結果總是一樣。 沒變。 我也嘗試將寬度更改為0 px,並將圖像src更改為“”! 我在DIV中也有圖像,並嘗試隱藏DIV,但是再次,什么都沒有?

如果在更改前發出警報: alert(document.getElementById(mouse_over_name).style.display) ,則在“無”后出現空白警報框。

我想念什么?

您可以在此處實時查看以上代碼: http : //www.beaconfasteners.net/beacon_advantage/graph/test.html

編輯:我已經在所有主要的瀏覽器中嘗試過。

羅比·科尼利森(Robby Cornelissen)是正確的。 您的img沒有隱藏的原因是因為onclick使用area元素的ID,並且您正在設置顯示:沒有,而不是img元素。 我不確定是否可以隱藏area元素的內容,但是您可以潛在地使用它來查找和隱藏與單擊區域共享相同id的圖像元素:

function set_spot(mouse_over_name) { 
    [].forEach.call(document.querySelectorAll('img'), function(el) {
       if (el.id === mouse_over_name) {
           el.style.display = 'none';
       };
    });
};

這將遍歷頁面上的所有圖像,因此我無法保證這種解決方案的速度。 您可以在這里預覽:

jsfiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM