さて、私が今2週目に解決策なしで取り組んでいるこの非常に奇妙な問題について説明しましょう。
100x100pxの画像があると想像してください。画像全体の周りに100x100の画像領域があります(画像領域をALPHAと呼びます)。また、画像上に2番目の画像領域がありますが、今回は画像全体ではなく、画像の真ん中(10x10)の画像の真ん中にあります(2番目の画像領域をベータ版と呼びます)。
これは、画像領域BETAが画像領域ALPHAの内側にあることを意味します。
ここで、画像領域ALPHAの上にマウスを置いたときに画像に境界線を追加し、次のコードを使用して画像領域ALPHAからマウスを離したときに境界線を削除します(jQueryを使用)。
$("area.ALPHA").hover(
function () {
$('img').css('border','1px solid #000');
},
function () {
$('img').css('border','none');
}
);
このコードは非常にうまく機能しています。
ただし、2番目の画像領域BETAにカーソルを合わせると、上記のコードが実行されることも必要です。しかし、それは機能していません。
なぜそれが機能しないのかはわかっています。なぜなら、画像領域BETAの上にマウスを置いているときは、画像領域ALPHAの外にもマウスを置いているからです。
私はこのフリーキンの問題を解決しようとしていましたが、残念ながら私はこの問題を自分で解決することはできないことに気づきました。助けてください。たとえば、このようなことをする可能性はありますか?:
if ($("area#ALPHA").mouseout === false && $("area#BETA").mouseenter === true) {
// ignore the first event (or something like this)...
}
私の最初の考えはevent.stopPropagation()でしたが、機能していません。たぶん私はそれを間違った方法で使用しただけです...
PS:CSSを使用する場合でも、画像領域を使用しない場合でも、これを同じように実行できることはわかっています。しかし、私はそれをこのようにしなければなりません...
私の説明がわからない場合は、もう一度正確に説明する準備ができています。