0

HTML 代码:

<body>
    <img class="card" src="card.jpg"/>
</body>

CSS 代码

.card{位置:静态;边距顶部:100px;左边距:100px;z 指数:10;}

.cuad{ 不透明度:0.3; 边框:4px纯黑色;宽度:40px;高度:40px;z指数:5;}

jQuery代码

$(document).ready(function(e){
$(".card").mouseenter(function(e){
    $("body").append($("<div class='cuad'></div>").css({"position": "absolute", "top": (e.pageY-24)+"px", "left": (e.pageX-24)+"px"}));
});
$(".card").mouseleave(function(e){
    $(".cuad").remove();
});

});

这段代码的问题是,在.card类元素区域入口处创建的div闪烁,因为自动调用了mouseleave函数,最后进入了死循环。

有人看到代码中的错误吗?

4

2 回答 2

2

你为什么不使用hover

$(document).ready(function(e){
    $(".card").hover(function(){
         //Add code for mouse enter
    },
    function(){
         // Add code for mouse leave
    });

});
于 2013-03-16T17:12:29.803 回答
0

这还有更多的问题。每次都会重新创建您的元素。更改 .card 和 .cuav 的 z-Index。使 .cuav 高于该卡,然后

试试这个:

$(document).ready(function(e) {
    var el = $("<div/>", {
                 class : 'cuad'
                });

$(".card").hover(function(e) {
                 $("body").append(el);
                 $(el).css({
                    position : "absolute",
                    top : e.pageY - 24,
                    left : e.pageX - 24

                 });

               }, function() {
                $(".cuad").remove(el);
         });
})
于 2013-03-16T17:53:31.060 回答