我正嘗試在身體負載上使用JQuery的.each()函數將功能分配給圖像映射中的不同區域。它在MSIE中正常工作,但在其他瀏覽器中完全失敗。如果我硬編碼的JavaScript功能,並使用調用它:jQuery id篩選器在MSIE中工作
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
})
});
});
(該仲變量只是測試,以查看是否我獲取任何信息,這在MSIE中觸發,但在其他瀏覽器中不觸發)
您將在j中看到alert(sec)
行avascript,這是我知道這個函數在MSIE中的工作方式,而不是在其他的方法中,以及當我單擊MSIE中的映射區域時這種方式可行,但在其他方面失敗的事實。
就像我之前說的,我幾乎肯定它與濾波器本身有關,但我似乎無法找到它。預先感謝任何幫助!
我完全忘了代碼中的某些東西(刪除它沒有想到,對不起)。正如你所看到的,這些區域沒有href。 .each函數中缺少的行是: '$(this).attr('href','#');' 它使區域可選。即使我將它添加到該區域作爲屬性仍然不起作用。 – anjiTechGuy
由於'map'標籤僅僅定義了圖像的命中點,因此是抽象的,你究竟做了什麼?你確定你不應該把你的代碼指向圖像,而不是地圖? – Utkanos
感謝你們兩位的建議,他們實際上幫我弄明白了。這是:可見的是阻止其他瀏覽器。使用下列內容: $( '#地圖1' 區域)。每個() 或者對於我來說,因爲我有一個以上的地圖: $(* [ID * = MMAP]區域)。每個() 允許將功能分配給每個圖像映射區域。 欣賞您的提示,再次感謝。 – anjiTechGuy