1
在我的項目中使用awsome FullCalendar,我遇到了一個問題。FullCalendar事件彈出
當用戶懸停一個事件時,我使用下面的代碼顯示一個包含菜單的DIV。
也能正常工作(問題與發現XY的事件是煩人)
我的問題是,當用戶通過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> <?php echo _("Rediger vagt")?></li><li onClick='showEventMembers("+ eventid +");'><a><img border='0' style='' src='/images/icons/users.png'></a> <?php echo _("Vis tilmeldte")?></li><li onClick='emailEventMembers("+ eventid +");'><a><img border='0' style='' src='/images/icons/email.png'></a> <?php echo _("Skriv mail")?></li><li onClick='printShiftplan("+ eventid +");'><a><img border='0' style='' src='/images/icons/printer.png'></a> <?php echo _("Udskriv vagtplan")?></li><li onClick='deleteEvent("+ eventid +");'><a><img border='0' style='' src='/images/icons/bin_closed.png' ></a> <?php echo _("Slet vagt")?></li></ul></div>";
$("body").append(layer);
console.log(jsEvent);
},
eventMouseout: function(calEvent, domEvent) {
$("#events-layer").remove();
},
對於醜陋的圖層(菜單),我很抱歉 - 不是最優雅的解決方案,但它現在可行。
總結一下問題:如何在使用eventMouseout刪除它之前檢查用戶是否實際瀏覽菜單?
Yann86:感謝您的答覆:) 我試着做正如你所建議的那樣,但問題在於 - 如果用戶不用鼠標「進入」菜單怎麼辦? 這可以解決,如果我把菜單下面的光標我猜.. 感謝您帶領我回到這條路(y) –
我編輯了答案這應該解決問題,如果用戶不「進入」菜單用鼠標 – Yann86
而我不知道你想要在哪裏添加圖層div,但是你應該用事件div位置而不是jsEvent來定位它。在eventMouseover $(this)引用事件div – Yann86