Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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
Javascript 如何修复jQuery mobile子菜单标题下的搜索字段_Javascript_Jquery_Css_Jquery Mobile - Fatal编程技术网

Javascript 如何修复jQuery mobile子菜单标题下的搜索字段

Javascript 如何修复jQuery mobile子菜单标题下的搜索字段,javascript,jquery,css,jquery-mobile,Javascript,Jquery,Css,Jquery Mobile,我有一个主菜单,点击主菜单会打开一个包含多个项目的子菜单。子标题下面是一个搜索字段 我想修复子标题下方的搜索字段,使其不再与所有选项一起滚动 我不确定这是否可以用CSS实现。我没有通过添加overflow-y:scroll到.ui-input-search使其工作 $(文档)。在(“页面创建”,“演示对话框”上,函数(e){ 变量形式=$(“”), 第页=$(本页); $(“.ui内容”,此) .prepend(表格); form.enhanceWithin() .on(“键控”、“输入”、函

我有一个主菜单,点击主菜单会打开一个包含多个项目的子菜单。
子标题
下面是一个
搜索字段

我想修复
子标题下方的
搜索字段
,使其不再与所有选项一起滚动

我不确定这是否可以用CSS实现。我没有通过添加
overflow-y:scroll
.ui-input-search
使其工作

$(文档)。在(“页面创建”,“演示对话框”上,函数(e){
变量形式=$(“”),
第页=$(本页);
$(“.ui内容”,此)
.prepend(表格);
form.enhanceWithin()
.on(“键控”、“输入”、函数(){
var data=$(this.val().toLowerCase();
$(“li”,第页).addClass(“ui屏幕隐藏”)
.过滤器(功能(i、v){
返回$(this).text().toLowerCase().indexOf(data)>-1;
}).removeClass(“ui屏幕隐藏”);
});
$(文档)。在(“pagecontainerhide”,函数()上{
$(“#演示菜单li”).removeClass(“ui屏幕隐藏”);
$(“输入”,表格).val(“”);
});
});
$(document).on(“pagebeforeshow”,“.ui对话框”,function()){
$(“.ui dialog.ui头a”)。按钮标记({
主题:“e”,
iconpos:“左”,
图标:“删除”
});
});
$(文档).on(“更改”,“多”,函数(){
如果($(“选项:选中”,则此).length==0){
$(“.ui dialog.ui头a.ui btn text”).text(“关闭”);
}
如果($(“选项:选中”,则此).length>0){
$(“.ui dialog.ui头a.ui btn text”).text(“完成!”;
}
});
.ui-selectmenu.ui-popup.ui输入搜索{
左侧边缘:.5em;
右边距:.5em;
}
.ui-selectmenu.ui-dialog.ui内容{
填充顶部:0;
最大高度:85vh;
溢出y:滚动;
}
.ui-selectmenu.ui-dialog.ui-selectmenu列表{
边际上限:0;
}
.ui-selectmenu.ui-popup.ui-selectmenu列表li.ui-first-child.ui btn{
边框顶部宽度:1px;
-webkit边界半径:0;
边界半径:0;
}
.ui-selectmenu.ui-dialog.ui标题{
边框底宽:1px;
左侧填充:50px;
}

长名单:
阿拉巴马州
阿拉斯加州
亚利桑那州
阿肯色州
加利福尼亚
科罗拉多州
康涅狄格州
特拉华州
佛罗里达州
佐治亚州
夏威夷
爱达荷州
伊利诺伊州
印第安纳州
爱荷华州
堪萨斯州
肯塔基州
路易斯安那州
缅因州
马里兰
马萨诸塞州
密歇根
明尼苏达州
密西西比
密苏里州
蒙大拿
内布拉斯加州
内华达州
新罕布什尔州
新泽西州
新墨西哥州
纽约
北卡罗来纳州
北达科他州
俄亥俄州
奥克拉荷马
俄勒冈
宾夕法尼亚
罗德岛
南卡罗来纳州
南达科他州
田纳西州
得克萨斯州
犹他州
佛蒙特州
弗吉尼亚州
华盛顿
西弗吉尼亚州
威斯康星州
怀俄明州

来自JQM文档:

自定义选择菜单

自定义选择使用带有列表视图的弹出窗口来显示菜单。 对于长列表,将使用对话框

如果您需要将一些元素粘贴在其中,并且只滚动一长串项目,框架将始终显示一个弹出窗口,因为列表项目的总高度永远不会超过屏幕高度

因此,这里的问题是计算不超过屏幕高度的子菜单listview的最大高度,告诉框架这里不再需要可滚动的对话框页面

编辑:移动弹出窗口的热修复程序重新定位为:窗口调整时的“原点”

$(文档)。在(“selectmenucreate”,“select[data native menu=false]”上,函数(e,ui){
var data=$(this.data(“移动选择菜单”),hide={“显示”:“无”};
data.list.attr(“数据过滤器”、“true”).find(“li[data placeholder='true']”)css(隐藏);
$(“#”+data.menuId).css(“最大高度”,“0”);
$(“#”+data.popupId)
.enhanceWithin()
.popup(“选项”{positionTo:data.button,history:false})
.data('mobile-popup').renderData={selectId:this.id,mH:0,hH:0,fH:0,iH:0};
$(此).on(“更改”,函数(){
如果($(“选项:选中”,此).length==0){
data.headerClose.addClass(“ui图标删除”).removeClass(“ui图标检查”);
}否则{
data.headerClose.addClass(“ui图标检查”).removeClass(“ui图标删除”);
}
});
});
$(文档).on(“PopupBeforeLocation”,函数(e,ui){
var popup=$(e.target),data=popup.data(“移动弹出”),rD=data.renderData;
国际单项体育联合会(rD){
var select=$(“#”+rD.selectId);
var sH=$.mobile.getScreenHeight();
如果(rD.iH==0){
rD.mH=popup.outerHeight(true)-popup.height();
rD.hH=popup.find('.ui头').outerHeight(true);
rD.fH=popup.find('.ui filterable').outerHeight(true);
rD.iH=popup.find('li').outerHeight(true);
}
var maxItems=((sH-rD.mH-rD.hH-rD.fH-50)/rD.iH)0,
maxHeight=maxItems*rD.iH;
选择.data(“移动选择菜单”).list.css(“最大高度”,最大高度+“px”);
}
});
$(文档).on(“popupafterclose”,函数(e,ui){
var popup=$(e.target),data=popup.data(“移动弹出”),rD=data.renderData;
国际单项体育联合会(rD){
popup.find(“li”).removeClass(“ui屏幕隐藏”);
popup.find(“.ui可过滤输入”).val(“”);
$(“#”+rD.selectId).data(“移动选择菜单”).list.css(“最大高度”,“0”);
}
});
/*选择弹出窗口的可滚动列表视图*/
.ui-selectmenu-list.ui-listview{
溢出x:隐藏;
溢出y:自动;
}
/*只是在窗户周围透透气*/
.ui-selectmenu.ui-popup{
填充:0.6em;
}
.ui选择菜单.ui标题.ui图标删除{
背景色:橙色!重要;
边框:1px纯红!重要;
}
.ui选择菜单.ui标题.ui图标检查{
背景色:#90ee90!重要;
边框:1px纯绿!重要;
}

$(文档).on(“mobileinit”,函数(){
$.widget(“mobile.popup”$