FullCalendar事件弹出



在我的项目中使用很棒的FullCalendar,我遇到了一个问题。

当用户悬停一个事件时,我使用下面的代码显示一个包含菜单的DIV。

这工作得很好(寻找事件的X Y问题很烦人)

我的问题是,当用户将鼠标移动到DIV(菜单)上时,事件触发eventMouseOut(它应该)-但这关闭了我的DIV。

在删除菜单之前,如何检查鼠标是否在菜单内?

eventMouseover: function(event, jsEvent, view){
            var eventid = event.id;
            var layer = "<div id='events-layer'  style='position:absolute; top:"+ jsEvent.pageY +"px; left:"+ jsEvent.pageX +"px; text-align:left; z-index:9999;background-color:#ffffff;padding-right:5px;cursor:pointer;width:100px;color:#000000;'><ul style='list-style-type: none;margin-left:0px;padding:0px;overflow:hidden;' onclick=''><li onClick='editEvent("+ eventid +");'><a><img border='0' style='' src='/images/icons/wrench.png'></a>&nbsp;<?php echo _("Rediger vagt")?></li><li onClick='showEventMembers("+ eventid +");'><a><img border='0' style='' src='/images/icons/users.png'></a>&nbsp;<?php echo _("Vis tilmeldte")?></li><li onClick='emailEventMembers("+ eventid +");'><a><img border='0' style='' src='/images/icons/email.png'></a>&nbsp;<?php echo _("Skriv mail")?></li><li onClick='printShiftplan("+ eventid +");'><a><img border='0' style='' src='/images/icons/printer.png'></a>&nbsp;<?php echo _("Udskriv vagtplan")?></li><li onClick='deleteEvent("+ eventid +");'><a><img border='0' style='' src='/images/icons/bin_closed.png' ></a>&nbsp;<?php echo _("Slet vagt")?></li></ul></div>";
            $("body").append(layer);
            console.log(jsEvent);
        },
        eventMouseout: function(calEvent, domEvent) {
            $("#events-layer").remove();
        },

我很抱歉这个丑陋的图层(菜单)-不是最优雅的解决方案,但它现在工作。

总结一下这个问题:在eventMouseout中删除菜单之前,我如何检查用户是否真的在导航菜单呢?

你可以在鼠标离开图层时删除图层而不是在鼠标离开日历div事件时删除图层,像这样:

eventMouseover: function(event, jsEvent, view){
                  var eventid = event.id;
                  var layer = $("<div id='events-layer'  style='position:absolute; top:"+ jsEvent.pageY +"px; left:"+ jsEvent.pageX +"px; text-align:left; z-index:9999;background-color:#ffffff;padding-right:5px;cursor:pointer;width:100px;color:#000000;'><ul style='list-style-type: none;margin-left:0px;padding:0px;overflow:hidden;' onclick=''><li onClick='editEvent("+ eventid +");'><a><img border='0' style='' src='/images/icons/wrench.png'></a>&nbsp;<?php echo _("Rediger vagt")?></li><li onClick='showEventMembers("+ eventid +");'><a><img border='0' style='' src='/images/icons/users.png'></a>&nbsp;<?php echo _("Vis tilmeldte")?></li><li onClick='emailEventMembers("+ eventid +");'><a><img border='0' style='' src='/images/icons/email.png'></a>&nbsp;<?php echo _("Skriv mail")?></li><li onClick='printShiftplan("+ eventid +");'><a><img border='0' style='' src='/images/icons/printer.png'></a>&nbsp;<?php echo _("Udskriv vagtplan")?></li><li onClick='deleteEvent("+ eventid +");'><a><img border='0' style='' src='/images/icons/bin_closed.png' ></a>&nbsp;<?php echo _("Slet vagt")?></li></ul></div>");
                  layer.mouseenter(function(){
                       $(this).addClass("mouse_in");
                   })
                  layer.mouseleave(function(){
                       $(this).remove();
                   })
                   $("body").append(layer);
                   console.log(jsEvent);
        },
        eventMouseout: function(calEvent, domEvent) {
           if(!$("#events-layer").hasClass('mouse_in')){
             $("#events-layer").remove();
           }
        },

相关内容

  • 没有找到相关文章

最新更新