我正在尝试在身体负载上使用 JQuery 的 .each() 函数将功能分配给图像映射中的不同区域。它在 MSIE 中运行良好,但在任何其他浏览器中完全失败。如果我对 javascript 函数进行硬编码并使用以下命令调用它:
href="javascript:cInfo(mapHeadG)"
作为每个区域的属性,它适用于所有浏览器,所以我知道它不是代码本身。我猜它必须是我正在使用的过滤器。任何的意见都将会有帮助!
这是图像映射元素:
<map id="mMap1" name="mMap1">
<area coords="44, 13, 116, 14, 123, 21, 36, 21"
shape="poly" alt="" id="mapHeadG" class="mLink" />
<area coords="37, 66, 113, 65, 117, 73, 34, 76"
shape="poly" alt="" id="mapNeckG" />
<area coords="8, 83, 141, 79, 144, 88, 126, 97, 9, 96, 2, 92"
shape="poly" alt="" id="mapShoulderG" />
</map>
这是我用来分配功能的 JQuery:
$(document).ready(function () {
$('*[id*=map]:visible').each(function () {
var sec = $(this).attr('id');
alert(sec);
$(this).hover(function () {
//Do something here.
}, function () {
//Do something here.
});
$(this).click(function () {
//Do something else here
})
});
});
( sec 变量只是一个测试,看看我是否得到任何信息,这会在 MSIE 中触发,但不会在其他浏览器中触发)
您将alert(sec)
在 javascript 中看到该行,这就是我如何知道该函数在 MSIE 中工作但在其他人中不工作的方式,以及当我单击 MSIE 中的映射区域时这工作但在其他人中失败的事实。
就像我之前说的,我几乎肯定它与过滤器本身有关,但我似乎找不到它。提前感谢您的帮助!