javascript - 鼠标移到链接,显示一个信息层,鼠标移出链接进入信息层消失!
巴扎黑
巴扎黑 2017-04-10 15:59:12
[JavaScript讨论组]

场景是鼠标移动到用户名字,会显示该用户的个人信息的层,在这个层上可以对用户进行关注。

现在碰到问题是从用户名字移开,进入个人信息层的时候,信息会消失。因为我写了一个移除代码。我感觉我写错了,但是我又不知道怎么写。

        $(document).on("mouseover mouseout", "a[name='user']", function (event) {
            if (event.type == "mouseover") {

             //todo ajax获取用户信息

              result = $.ajax({
                    type: "post",
                    data: {op: "getUserContent", id: uid},
                    url: "../lib/ajax_model.php",
                    async: false
                });
                var data = result.responseText;
              
         //todo ....
         //todo 构建popover_box,用定位显示在当前的链接附近
                $(this).append($ip);

            }
            else if (event.type == "mouseout") {
             $(this).find('.popover_box').remove();
         //popover_box是构建的层,移除链接后,直接移掉该层
             }
          

        })

后续问题补充:


补充动态生成的popover_box显示层是这样的

张三

xxx

xxxx

现在是实际是:
然后从popover_member移入到子元素如member_face,出现了层关闭的问题,加了setTimeout(),能解决问题。

从张三移出后,移到popover_member ,使用了setTimeout();没有作用。按输出的html结构来看 popover_member的层应该的子元素吧??

补充新:
鼠标移到头像或者名字,会显示这个层,但是鼠标移入到红色区域,这个用户信息层会消失,但是这个层和红色之间的这块白色区域鼠标是不会消失的,这块区域我是对popover_member用了padding


问题补充新


        $(document).on("mouseover mouseout", "a[name='user']", function (event) {


            var remove_popoverbox_fun = function () {
                $('.popover_box').remove();

            
            };

            if (event.type == "mouseover") {
              
                if ($(this).find('.popover_box').html() == undefined) {
                    xy = $(this).offset();

                  
                    var top = xy.top + 15;
                    var left = xy.left + 20;
                    var width = 300;
                    var height = 130;


                    uid = $(this).data("id");
                  
                  /*
                    htmlobj = $.ajax({
                        type: "post",
                        data: {op: "getUserContent", id: uid},
                        url: "../lib/ajax_data.php",
                        async: false
                    });
                    var data = htmlobj.responseText;
                   

                    var obj = eval("(" + data + ")");//转换后的JSON对象
                    */


                    $(this).css("poisitin", "relative");
                    var $ip = $("

李强

" + "

公司名称

文章1 话题2

"); var $ip = $(obj.content); $ip.css("top", top + "px"); $ip.css("left", left + "px"); $(this).append($ip); $(".popover_box").on("mouseenter",function(){ clearTimeout(remove_popoverbox_Timer); }); $(".popover_box").on("mouseleave",function(){ remove_popoverbox_fun(); }); } } else if (event.type == "mouseout") { alert("leave"); clearTimeout(remove_popoverbox_Timer); remove_popoverbox_Timer=setTimeout(function(){ remove_popoverbox_fun(); },100); } })
巴扎黑
巴扎黑

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号