ボディ ロードで 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 で発生しますが、他のブラウザーでは発生しません)
これは、関数がMSIEで機能しているが他の機能では機能していないことalert(sec)
を知っている方法です。MSIEでマップされた領域をクリックすると、これは機能しますが、他の領域では失敗します。
前に言ったように、私はそれがフィルター自体に関係していることをほぼ確信していますが、それを見つけることができないようです. 助けてくれてありがとう!