2013-04-09 93 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