jquery不会在mouseleave上删除div

时间:2011-10-03 09:25:13

标签: jquery

这很烦人。在图像上翻转后,如果从左侧,顶部或右侧边缘展开红色框消失。但是如果你从底部边缘滚出红色框有时会消失。那是为什么?

http://jsfiddle.net/f98r3/2/

修改 的 另一个奇怪的事情是,当你检查控制台日志时,mouseleave会触发但不会删除div !!!。

编辑2: 好的,两个答案都解决了问题,但我仍然想知道如何在地球上console.log记录原始代码中的mouseleave但不触发remove()?

2 个答案:

答案 0 :(得分:1)

我认为外部div会产生一些问题,这种方式有效:

http://jsfiddle.net/f98r3/5/

$("img").bind("mouseenter", function () {
    $("#enlargemag").remove();
    var imgobj = this;
    var w = $(imgobj).width();
    var h = $(imgobj).height();
    var p = $(imgobj).position();
    $("<div id='enlargemag' style='border:none;cursor:pointer;position:absolute;top:" + p.top + "px;left:" + p.left + "px;width:" + w + "px;height:" + h + "px;background-color:#FF0000;'></div>").appendTo("body");
});
$("#enlargemag").live("mouseleave", function () {
    console.log("mouselave");
    $("#enlargemag").remove();
});

答案 1 :(得分:1)

图片

display: block解决了问题