在mousleave清空变量后,Mouseenter不会恢复其变量

时间:2014-01-16 19:17:59

标签: jquery

我正在尝试在mouseenter上显示说明,并隐藏mouseleave上的说明。 问题是我在mouseleave上清空了我的附加变量,但是当鼠标输入时,变量将永远丢失,它不会再次附加变量。

$(document).ajaxComplete(function(){

                    $(".defList").css("display","none");

                    $("#1a").mouseenter(function(){
                        var defterm=$(".1b");

                        $(".slidingDiv dl").append(defterm);
                        $(".slidingDiv").css("left", 150);
                        $(".slidingDiv").css("top", 150);
                        $(".slidingDiv").fadeIn("fast");    

                        $("#1a").mouseleave(function(){
                            $(".slidingDiv").fadeOut("fast");
                            $(".slidingDiv dl").empty();
                        });     

                    });


                    $("#2a").mouseenter(function(){
                        var defterm=$(".2b");           
                        $(".slidingDiv dl").append(defterm);
                        $(".slidingDiv").css("left", 300);
                        $(".slidingDiv").css("top", 150);
                        $(".slidingDiv").show("fast");

                        $("#2a").mouseleave(function(){ 
                            $(".slidingDiv").fadeOut("fast");
                            $(".1b").empty();
                        });
                    });
            });

2 个答案:

答案 0 :(得分:0)

您的目标是在mouseenter / houseleave上显示/隐藏某些内容。 不要使用javascript,请使用css:hover

您可以使用css过渡来为淡入/淡出设置动画。

请显示html和所需的效果。然后我们可以帮助你解决问题。

在任何情况下,不要使用empty(),而是以这种方式执行defterm.detach()元素。

答案 1 :(得分:0)

您可以执行CodeToad建议的操作,或者只缓存值,然后重新分配。再次,似乎奇怪的是“清空”它。有很多方法可以解决你的情况。但好奇为什么要把它清空。你可以将它包裹在一个范围内,然后“隐藏”它。然后在你想要的时候展示。

        $(document).ajaxComplete(function(){

                $(".defList").css("display","none");
                var cache = {
                    '1b' : $('.1b'),
                    '2b' : $('.2b'),
                }
                $("#1a").mouseenter(function(){
                    $(".slidingDiv dl").append(cache['1b']);
                    $(".slidingDiv").css("left", 150);
                    $(".slidingDiv").css("top", 150);
                    $(".slidingDiv").fadeIn("fast");    

                    $("#1a").mouseleave(function(){
                        $(".slidingDiv").fadeOut("fast");
                        $(".slidingDiv dl").empty();
                    });     

                });


                $("#2a").mouseenter(function(){
                    $(".slidingDiv dl").append(cache['2b']);
                    $(".slidingDiv").css("left", 300);
                    $(".slidingDiv").css("top", 150);
                    $(".slidingDiv").show("fast");

                    $("#2a").mouseleave(function(){ 
                        $(".slidingDiv").fadeOut("fast");
                        $(".1b").empty();
                    });
                });
        });