2014-09-02 65 views
0

我有一個網頁沒有涉及窗口小部件(主要建立在highcharts jquery上)的顯示。通常一個小部件有一個導出按鈕。點擊後,它會爲各種導出選項打開一個小菜單。 點擊導出按鈕打開子菜單,但點擊外面並不會消失。 :(jquery:懸停不工作在IE8中的UL內嵌套li,IE9

點擊按鈕等事件的jquery代碼寫在一箇中央和單獨的js文件中 我試圖在導出按鈕上附加一個mouseout/mouseleave事件,然後檢查鼠標是否懸停在我的子菜單。如果不是,然後關閉子菜單。這工作正常,在Chrome,但不是在IE瀏覽器。

的代碼是

var $exportMenu = $("<ul id='exportMenu'></ul>").appendTo($(settings.contentSelector, this)); 

DxOne.Export.initialiseExportMenuItems(thisWidgetSettings.exportOptions, $exportMenu); 

$exportMenu.hide(); 
$exportMenu.menu(); 

$('<a href="#" class="export" title="Export">EXPORT</a>').click(function (e) { 
    e.stopPropagation(); 
    e.preventDefault(); 

    $exportMenu.show().position({ 
     my: "left top", 
     at: "left bottom", 
     of: this 
    }); 

    $exportMenu.mouseleave(function() { 
     $exportMenu.hide(); 
    }); 
    return false; 
}) 
    .mouseout(function (e) { 
    if (!($exportMenu.is(":hover")) { 
     $exportMenu.hide(); 
    } 
    }) 
    .appendTo($(settings.handleSelector, this)); 

而且,我嘗試了各種解決方案添加一個白色的背景色爲UL ,如以下鏈接所述,但徒勞無益。

jquery: nested tags and hover() not working in IE

Hover doesn't work on nested ul in ie9

請提出一個解決方案。 TIA

回答

0

謝謝您的幫助球員。

我終於弄清楚了這個問題的解決方案。 我寫的最後.mouseout事件是:

.mouseout(功能(E){ /*綁定懸停方法,首先在處理鼠標和鼠標進行了exportMenu運動,然後躲在出口菜單 使而徘徊,在exportMenu,從出口按鈕,不讓它消失*/ $ exportMenu.hover(功能(E){$ exportMenu.show();} ,功能(E){ $ exportMenu.hide(); }); $ exportMenu.hide(); }) .appendTo($(settings.handleSelector,this));

0

IE無法識別沒有內容的元素上的事件。添加非打破空間內部的UL您的定位(例如& NBSP;)

+0

仍是同樣的問題。 :( – 2014-09-02 07:41:47

1

您在exportMenu之前錯過了$嘗試像,

.mouseout(function (e) { 
    if (!($exportMenu.is(":visible")) { // and use :visible instead of :hover 
    //--^--- place it before exportMenu 
    $exportMenu.hide(); 
    } 
}).... 
+0

對不起,這是一個錯誤的副本 我已經添加了$現在它仍然表現相同 – 2014-09-02 07:39:32

+0

你可以爲它做一個在線演示(特別爲IE) – 2014-09-02 07:47:30

+0

我是jquery的新手Rohan,我甚至不熟悉基本的jquery基金會。 – 2014-09-02 08:22:11