2017-04-11 69 views

回答

0

實際上它不是隨機關閉的,但是當「popup」容器在空間不足時開始滾動時就會關閉。滾動事件正在導致下拉菜單關閉。如果您在彈出窗口中設置了overflow-y: none;,您會看到問題消失。

我認爲解決這個問題的唯一方法就是通過一個避免容器滾動的解決方法。很顯然,這會對你有一些UI含義,所以你需要決定是通過CSS還是使用JavaScript來消耗滾動事件並取消它。

這裏你可以看到在下拉列表中的一些解決方案,以類似滾動的問題: http://docs.telerik.com/kendo-ui/controls/editors/dropdownlist/how-to/appearance/prevent-close-on-scroll

這裏:http://dojo.telerik.com/OJugu

,也看看這個線程:http://www.telerik.com/forums/scrolling-bug-causes-multiselect-dropdown-to-close-(with-dojo-example)

+0

謝謝,我去滾動事件處理的路線。這與這些例子有點不同,但解決方案是相似的。 – comfortablEnum

0

我確定一個解決方案。滾動事件之前,似乎該下拉菜單正在關閉。所以,我攔截滾動事件,取消它,然後重新打開下拉菜單。

工作例如: http://dojo.telerik.com/aWAQu/6

解決方案:

$('.caregiver-window-fixed-height').on('scroll', function (e) { 
    var $widget = $('#careGiverHelpTags').data("kendoMultiSelect"); 

    if (e.type == "scroll" && $widget.wrapper.hasClass('k-state-focused') && $widget.list.is(':visible')) { 
     e.preventDefault(); 
     e.stopImmediatePropagation(); 
     $widget.open(); 
    } 
});