好的,让我向您解释这个非常奇怪的问题,我现在正在第二周工作,但没有任何解决方案。
想象一下,我有一张 100x100 像素的图像。在整个图像周围,我有一个 100x100 的图像区域(我们将图像区域称为 ALPHA)。我在图像上还有第二个图像区域,但这次不是在整个图像周围,而是在图像中间(10x10)的内部(我们称第二个图像区域为 BETA)。
这意味着图像区域 BETA 在图像区域 ALPHA 内。
现在,当我将鼠标悬停在图像区域 ALPHA 上时,我想为图像添加边框,并使用以下代码(通过 jQuery)将鼠标移出图像区域 ALPHA 时删除边框:
$("area.ALPHA").hover(
function () {
$('img').css('border','1px solid #000');
},
function () {
$('img').css('border','none');
}
);
这段代码运行良好。
但我也希望当我将鼠标悬停在我的第二个图像区域 BETA 上时,上面的代码将被执行。但它不起作用。
我知道它为什么不起作用,因为当我将鼠标悬停在图像区域 BETA 上时,我也将鼠标移出图像区域 ALPHA。
我试图解决这个怪异的问题,但不幸的是我意识到我自己无法解决这个问题,所以请帮助我。例如有没有可能做这样的事情?:
if ($("area#ALPHA").mouseout === false && $("area#BETA").mouseenter === true) {
// ignore the first event (or something like this)...
}
我的第一个想法是 event.stopPropagation(),但它不起作用。也许我只是用错了方法......
PS:我知道我可以只使用 CSS 或不使用图像区域来做同样的事情。但我必须这样做......
如果你不明白我的解释,我准备再更准确地解释一遍。