Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/jquery-mobile/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery mobile 阻止具有大量选项列表的jquerymobile多选控件的对话框视图_Jquery Mobile_Dialog_Multi Select - Fatal编程技术网

Jquery mobile 阻止具有大量选项列表的jquerymobile多选控件的对话框视图

Jquery mobile 阻止具有大量选项列表的jquerymobile多选控件的对话框视图,jquery-mobile,dialog,multi-select,Jquery Mobile,Dialog,Multi Select,因此,我喜欢jquery mobile拥有的自定义多选控件,并希望使用它。因此,请不要建议将数据角色设置为“无”。但是,如果选项列表很长,我不希望在新的对话框窗口中打开选择列表的默认行为 我不想要这种行为的原因是它在ipad上运行得不太好。使用对话框左侧的“X”将其关闭变得很困难。出于某种原因,它在ipad上变得无响应,但在桌面上运行良好。因此,深入研究jquery移动javascript(很痛苦)来找出在多选择列表中全屏显示的决定是在哪里做出的。这段代码告诉我,并没有这样的标志,我可以设置来避

因此,我喜欢jquery mobile拥有的自定义多选控件,并希望使用它。因此,请不要建议将数据角色设置为“无”。但是,如果选项列表很长,我不希望在新的对话框窗口中打开选择列表的默认行为


我不想要这种行为的原因是它在ipad上运行得不太好。使用对话框左侧的“X”将其关闭变得很困难。出于某种原因,它在ipad上变得无响应,但在桌面上运行良好。

因此,深入研究jquery移动javascript(很痛苦)来找出在多选择列表中全屏显示的决定是在哪里做出的。这段代码告诉我,并没有这样的标志,我可以设置来避免它

但是,由于它取决于列表的高度(menuHeight),因此对我有效的修复方法是对css进行一些更改(减少每个列表项的填充),以便减少列表大小:

.ui-selectmenu-list li .ui-btn-inner a.ui-link-inherit
{
    padding: .5em 15px .5em 15px;    
}
如果您想确保不显示该对话框,那么一个糟糕的修复方法是在jquery移动代码的本地副本中添加一些覆盖(我不喜欢这样做,但这是唯一的方法):


也许我发现了一个使用css的更简单的解决方案

.ui-selectmenu{
    max-height: 500px;
}
这会阻止jquery mobile识别长长的选项列表,并且不会创建对话框

请注意,所有select控件都会发生这种情况

最好只对桌面用户限制此选项,在移动设备中使用完整页面对话框,这非常有用。 e、 g.使用

@media screen and (min-width: 768px) {
    .ui-selectmenu{
        max-height: 500px;
    }
}

这里有一个简单的CSS,它将阻止对话框版本,并在列表中提供一个滚动条

.ui-selectmenu { max-height: calc(95vh - 100px); } 
.ui-selectmenu-list { max-height: calc(95vh - 150px); overflow-y: auto; } 

我也有类似的愿望,可惜没有更好的办法。我需要处理多个选择列表上的popupafterclose事件(因为这是我保存数据的地方)。但是,此事件仅在以弹出模式显示时触发,而不是以页面模式显示。有没有更好的办法来处理这样的案件?嗨@dreamerkumar,我也有类似的问题。你找到更好的解决方案了吗?抱歉@sham.y我很久没有在jQuery手机上工作了。我不记得找到了更好的解决办法。
.ui-selectmenu { max-height: calc(95vh - 100px); } 
.ui-selectmenu-list { max-height: calc(95vh - 150px); overflow-y: auto; }