9

我使用 jquery 选择菜单插件。我已经初始化了选择

$('select').selectmenu({width:100, maxHeight:300, style: 'dropdown'});

我有很多选项,这会导致出现默认浏览器滚动条,但我无法使用它。如果我单击并尝试拖动此栏,选择菜单将关闭。我可以用鼠标滚轮滚动。css 和各种插件可能存在一些冲突。但我不确定从哪里开始寻找。

任何想法,什么可能导致这个问题?

4

5 回答 5

13

您可以设置选择菜单在 CSS 中打开时内容的最大高度,然后它将在可以使用的项目列表中显示一个滚动条。

ul.ui-menu { max-height: 420px !important; }

如果您正在使用其他包含 <ul> 元素且分配了“ui-menu”类的 jQuery UI 小部件,则可能需要在 CSS 中进一步限制这种样式更改。

于 2014-11-18T16:09:15.383 回答
4

针对JQueryUI 演示页面的示例“选择一个数字”给出了一个解决方案:

$('select').selectmenu().selectmenu("menuWidget").css("height","200px");
于 2015-10-27T14:30:32.297 回答
1

js文件这一段好像有问题:

// document click closes menu
$( document ).bind( "mousedown.selectmenu-" + this.ids[ 0 ], function( event ) {
    //check if open and if the clicket targes parent is the same
    if ( self.isOpen && !$( event.target ).closest( "#" + self.ids[ 1 ] ).length ) {
        self.close( event );
    }
});

滚动条同意“if”子句中的条件,所以选择菜单被关闭......

您可以在“if”子句中注释该行,直到有人为此错误提供解决方案。这样,当您单击它时,选择菜单不会关闭,但当您选择任何选项时它将关闭...

编辑:

好的,它现在正在工作。将之前显示的部分更改为:

$( document ).bind( "mousedown.selectmenu-" + this.ids[ 0 ], function( event ) {
    //check if open and if the clicket targes parent is the same
    if ( self.isOpen && !$( event.target ).closest( "#" + self.ids[ 1 ] ).length && !$(event.target).hasClass('ui-selectmenu-menu-dropdown')) {
        self.close( event );
    }
});

这样,由于滚动条是具有类“ui-selectmenu-menu-dropdown”的 div 的一部分......移动滚动条时不会关闭选择菜单。

于 2013-10-16T18:57:16.353 回答
0

如果要按 ID 为每个项目设置最大高度。采用:

#select1-menu { max-height: 150px !important; }
#select2-menu { max-height: 200px !important; }

例如,您的选择菜单的 id 是 'select' 使用:

#select-menu { max-height: 150px !important; }
于 2015-05-28T07:51:39.643 回答
0
<!--JQUERY-->
$('.custom-combobox-toggle').on('click',function (e) {
      e.preventDefault();
      $('.ui-menu').addClass('custom-scroll');
});

<!--CSS-->
.ui-widget.ui-widget-content.custom-scroll {
    max-height: 300px;
    overflow: auto;
    display: block;
}
于 2019-07-03T07:30:43.767 回答