不绑定listview事件的Jquery Mobile动态对话框
我试图在Jquery mobile中创建一个包含动态内容的对话框,并在其中显示一个listview。现在,当用户在listview中单击一个项目时,对话框应该关闭,所选项目应该显示在文本框中。当用户单击文本框时,将显示该对话框 我的问题是在第一次显示对话框和listview时。但我无法获取所选项目 当用户第二次在同一文本框中单击时,该对话框不会显示 守则:不绑定listview事件的Jquery Mobile动态对话框,listview,jquery-mobile,modal-dialog,Listview,Jquery Mobile,Modal Dialog,我试图在Jquery mobile中创建一个包含动态内容的对话框,并在其中显示一个listview。现在,当用户在listview中单击一个项目时,对话框应该关闭,所选项目应该显示在文本框中。当用户单击文本框时,将显示该对话框 我的问题是在第一次显示对话框和listview时。但我无法获取所选项目 当用户第二次在同一文本框中单击时,该对话框不会显示 守则: <div id="inlinecontent" style="display:none" data-options='{"mode"
<div id="inlinecontent" style="display:none"
data-options='{"mode":"blank","headerText":"Select","headerClose":true,"blankContent":true}'>
<a rel='close' data-role='button' href='#'>Close</a>
</div>
<script type="text/javascript">
document.addEventListener('deviceready', function () {
$('#addadult').click(function(){
var adult = document.getElementById('totaladult').textContent;
alert(adult);
var myInteger = parseInt(adult);
myInteger+=1;
document.getElementById('totaladult').textContent=myInteger;
});
/* $('#listviewfrom').delegate('li', 'click', function () {
$("#txtFrom").val(this.textContent);
$("#txtFrom").trigger('refresh');
$("#popupMenu" ).popup( "close" )
$("#popupMenu ul").hide();
}); */
$('#listviewto').delegate('li', 'click', function () {
$("#txtTo").val(this.textContent);
$("#txtTo").trigger('refresh');
$("#popupMenu1" ).popup( "close" )
$("#popupMenu1 ul").hide();
});
$('#txtFrom').click(function(){
var labels='<ul data-role="listview" data-theme="c" id="listviewfrom" data-filter="true">';
try {
BookingCities = getJsonData();
$.each(BookingCities["BookingCities"], function(i, val) {
labels += '<li data-icon="up"><a href="#" rel="close" onclick="test("'+val.CityName +'")">' + val.CityName + '(' +
val.CityCode + '),' + val.CountryName + ' </a></li>';
});
labels+='</ul>';
$('#inlinecontent ul').listview('refresh');
$("#inlinecontent").html(labels);
$('#inlinecontent ul').show();
$("#inlinecontent").simpledialog2();
}
catch (ex)
{
}
});
$("#txtTo").click(function()
{
var labels='';
BookingCities = getJsonData();
$.each(BookingCities["BookingCities"], function(i, val)
{
labels += '<li data-icon="up"><a href="#">' + val.CityName+'(' +val.CityCode+'),'+ val.CountryName+' </a></li>';
});
});
navigator.splashscreen.hide();
}, false);
</script>
document.addEventListener('deviceready',函数(){
$(“#添加成人”)。单击(函数(){
var成人=document.getElementById('total成人').textContent;
警惕(成人);
var myInteger=parseInt(成人);
myInteger+=1;
document.getElementById('Total成人')。textContent=myInteger;
});
/*$('#listviewfrom')。委托('li','click',函数(){
$(“#txtFrom”).val(this.textContent);
$(“#txtFrom”).trigger('refresh');
$(“弹出菜单”)。弹出(“关闭”)
$(“#弹出菜单ul”).hide();
}); */
$('#listviewto')。委托('li','click',函数(){
$(“#txtTo”).val(this.textContent);
$(“#txtTo”).trigger('refresh');
$(“popupMenu1”)。弹出(“关闭”)
$(“#popupMenu1 ul”).hide();
});
$('#txtFrom')。单击(函数(){
var labels='';
试一试{
bookingchities=getJsonData();
$。每个(BookingCities[“BookingCities”],功能(i,val){
标签+=';
});
标签+='
';
$('#inlinecontent ul')。列表视图('refresh');
$(“#inlinecontent”).html(标签);
$('#inlinecontent ul').show();
$(“#inlinecontent”).simpledialog2();
}
捕获(ex)
{
}
});
$(“#txtTo”)。单击(函数()
{
var标签=“”;
bookingchities=getJsonData();
$。每个(BookingCities[“BookingCities”],功能(i,val)
{
标签+=';
});
});
navigator.splashscreen.hide();
},假);
如果有人能提供帮助,我将不胜感激尝试添加“blankContentAdopt”:SimpleDialog2选项的正确选项。这将有助于使用动态内容重新启动:
<div id="inlinecontent" style="display: none" data-options='{"mode":"blank","headerText":"Select","headerClose":true,"blankContent":true, "blankContentAdopt": true}'>
然后将单击处理程序添加到listitem锚定中,您可以从中获取文本并在关闭弹出窗口之前将其放入文本框:
$(document).on("click", ".ui-simpledialog-container #listviewfrom li a", function(){
//alert($(this).text());
$("#txtFrom").val($(this).text());
$.mobile.sdCurrentDialog.close();
});
要使过滤器元素正常工作,可能需要添加一些CSS以删除负边距:
.ui-simpledialog-container .ui-listview-filter {
margin: 0;
}
这里有一个
让我给你一些建议。您的代码不可读,您应该修复它,只显示我们需要知道的内容。其次,您应该创建此代码的JSFIDLE示例,以便我们可以直接在中进行测试。这里有一个例子:再加上最后一条建议,除非你学会接受给定的答案,否则你永远不会得到答案。
.ui-simpledialog-container .ui-listview-filter {
margin: 0;
}