Jquery 完整日历事件弹出窗口

Jquery 完整日历事件弹出窗口,jquery,fullcalendar,Jquery,Fullcalendar,在我的项目中使用一些完整的日历,我面临一个问题 当用户悬停在事件上时,我将使用下面的代码显示一个包含菜单的DIV 这很好(为事件查找X Y的问题很烦人) 我的问题是,当用户将鼠标移到DIV(菜单)上时,事件会触发eventMouseOut(正如它应该的那样)——但这会关闭我的DIV 在移除菜单之前,如何检查鼠标是否位于菜单内 eventMouseover: function(event, jsEvent, view){ var eventid = event.id;

在我的项目中使用一些完整的日历,我面临一个问题

当用户悬停在事件上时,我将使用下面的代码显示一个包含菜单的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();
        },
eventMouseover:函数(事件、jsEvent、视图){
var eventid=event.id;
var layer=“
”; $(“正文”)。附加(图层); console.log(jsEvent); }, EventMousOut:功能(calEvent、DomeEvent){ $(“#事件层”).remove(); },
我为难看的层(菜单)感到抱歉-这不是最优雅的解决方案,但它现在起作用了


总结一下问题:在eventMouseout中将菜单删除之前,如何检查用户是否确实在导航菜单?

您好,您可以在鼠标离开该层时删除该层,而不是在鼠标离开calendar 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();
           }
        },
eventMouseover:函数(事件、jsEvent、视图){
var eventid=event.id;
var layer=$(“
”; layer.mouseenter(函数(){ $(this.addClass(“mouse_in”); }) layer.mouseleave(函数(){ $(this.remove(); }) $(“正文”)。附加(图层); console.log(jsEvent); }, EventMousOut:功能(calEvent、DomeEvent){ if(!$(“#事件层”).hasClass('mouse#u in')){ $(“#事件层”).remove(); } },
您好,您可以在鼠标离开该层时删除该层,而不是在鼠标离开calendar 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();
           }
        },
eventMouseover:函数(事件、jsEvent、视图){
var eventid=event.id;
var layer=$(“
”; layer.mouseenter(函数(){ $(this.addClass(“mouse_in”); }) layer.mouseleave(函数(){ $(this.remove(); }) $(“正文”)。附加(图层); console.log(jsEvent); }, EventMousOut:功能(calEvent、DomeEvent){ if(!$(“#事件层”).hasClass('mouse#u in')){ $(“#事件层”).remove(); } },
Yann86:谢谢你的回复:)我试着按照你的建议去做,但问题是——如果用户没有用鼠标“进入”菜单怎么办?如果我把菜单放在光标下面,我想这是可以解决的。。谢谢你带我回到这条路(y)我已经编辑了答案,如果用户没有用鼠标“进入”菜单,这应该可以解决问题,我不知道你到底想在哪里添加图层div,但是你应该用event div position而不是jsEvent来定位它。在eventMouseover$(此)中,请参考事件分区n86:谢谢您的回复:)我尝试按照您的建议执行,但问题是-如果用户不使用鼠标“输入”菜单怎么办?如果我把菜单放在光标下面,我想这是可以解决的。。谢谢你带我回到这条路(y)我已经编辑了答案,如果用户没有用鼠标“进入”菜单,这应该可以解决问题,我不知道你到底想在哪里添加图层div,但是你应该用event div position而不是jsEvent来定位它。在eventMouseover$(this)中,参考事件div