プロが教えるわが家の防犯対策術!

以下のような仕組みのマップを作っております。

1)地図のエリアをイメージマップで作成。
2)エリアにオンマウスすると吹き出しで都道府県リストが表示され、都道府県を選択できる。
3)別のエリアにマウスを載せると吹き出しが切り替わる。
4)そのコーナーからマウスを話すと吹き出しが消える。


3)4)の制御がうまくいきません。
jQueryの記述の仕方を教えて頂けませんでしょうか?

↓のページを参考にしております。
http://tenderfeel.xsrv.jp/jquery/292/

Javascript
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
<script type="text/javascript">
$(function (){
if($('#map')){

$('#Map area').each(function(i){
var name = $(this).attr('href');
$(name).css({
"display":"none",
"position": "absolute",
"zIndex": "9999",
"display": "none"
});
$(this).mouseover(
function(e){
var bodyX =$(window).width();
var bodyY =$(window).height();
var Y =0;
var X =0;

if(Y < 0){
Y = e.clientY +0;
}
var eqY = Y;
var eqX = X;
if( eqY > bodyY){
Y = e.clientY;
}
if( eqX > bodyX){
eX = bodyX-X;
X = bodyX-(eX+$(name).width())-0;
}else{
X=X+0;
}
$(name).css({ "display":"block","left":X+"px","top":Y+"px"});
});

});
}
});
</script>
ーーーーーーーーーーーー

HTML
ーーーーーーー
<div id="map_area">
<img src="map.jpg" name="map" width="198" height="195" usemap="#Map" />
<map name="Map" id="Map">
<area shape="poly" coords="座標" href="#area1_list" alt="area1">
<area shape="poly" coords="座標" href="#area2_list" alt="area2">
<area shape="poly" coords="座標" href="#area3_list" alt="area3">
</map>
<div id="area1_list" class="map_list">
<ul>
<li><a href="#">A</a></li>
<li><a href="#">B<a></li>
</ul>
</div>
<div id="area2_list" class="map_list">
<ul>
<li><a href="#">C</a></li>
<li><a href="#">D<a></li>
</ul>
</div>
<div id="area3_list" class="map_list">
<ul>
<li><a href="#">E</a></li>
<li><a href="#">F<a></li>
</ul>
</div>
</div>
ーーーーーーー

A 回答 (1件)

こんにちは



>3)4)の制御がうまくいきません。
表示されたままになってしまう事象ということでよろしいのでしょうか?

ご参考のサイトのコードの下の方にある
 $(this).mouseout(function(){
  $(name).css({ "display":"none"});
 });
に相当する部分がないので、マウスが外れても表示されたままになってしまいます。
付け加えてあげれば、それぞれに対応したものが表示されるようになると思います。

あと、ご提示のコードだと表示位置の計算が少々疑問なのですが、そのあたりはよしなに調整してください。
    • good
    • 1
この回答へのお礼

解決しました

ありがとうございます。その後色々試したところ、うまくいきました。

お礼日時:2015/08/21 12:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!