2013-04-09 98 views
0

出於某種原因,我不能在這個圖像上單擊顯示的fancybox如果我有「的onmouseover」作爲參數圖片:點擊不工作

<area onmouseover="toggleOverlay('SteWoz',1);" id="locSteWoz" alt="Test" class="fancybox" coords="24,51,236,244" href="http://www.google.com" rel="iframe" shape="rect" title="Test"> 

編輯:這是toggleOverlay做什麼:

<script> 
    function toggleOverlay(name, newState){ 
     var element = 'imgOverlay' + name; 
     var newDisplay 

     if (newState == 0) {newDisplay = 'none'} 
     if (newState == 1) {newDisplay = 'block'}   

     document.getElementById(element).style.display = newDisplay; 
     //document.getElementById(element).style.z-index = '5'; 

      $(element).hide().fadeIn(4000); 
    } 
</script> 

如果我刪除「onmouseover」它工作正常。我怎樣才能解決這個問題?

詹姆斯

+0

什麼是'toggleOverlay'功能嗎? – Paulloz 2013-04-09 11:04:11

+0

更多代碼請 – 2013-04-09 11:04:23

+0

告訴我們點擊處理程序請 – 2013-04-09 11:05:29

回答

0

首先,這條線:

$(element).hide().fadeIn(4000); 

...並沒有真正做任何事,因爲在這一點上element仍然需要一個適當的符號(或者#.)來定義在這種情況下選擇器應該是:

$("#" + element).hide().fadeIn(1000); 

,如果你是覆蓋在使用圖像map,我認爲你是在做這樣的圖像的另一圖像此JSFIDDLE

...那麼就沒有什麼可以做,以「使覆蓋不響應任何點擊,以便下面的圖像可以點擊「。

但是你可以做什麼,是使覆蓋圖像使用相同的圖像map如下這樣的形象,你的toggleOverlay()函數中,你可以調整這條線

$("#" + element).hide().fadeIn(1000); 

...這個

$("#" + element).hide().fadeIn(1000).attr("usemap", "#Map"); 

...假設你的HTML看起來像

<map name="Map" id="Map"> 
    <area onmouseover="toggleOverlay('SteWoz',1);" id="locSteWoz" class="fancybox" shape="square" coords="0,0,415,319" href="{target}" title="title" alt="alt" /> 
</map> 

...否則使用map標籤的相應ID。

updated JSFIDDLE