不绑定listview事件的Jquery Mobile动态对话框

不绑定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"

我试图在Jquery mobile中创建一个包含动态内容的对话框,并在其中显示一个listview。现在,当用户在listview中单击一个项目时,对话框应该关闭,所选项目应该显示在文本框中。当用户单击文本框时,将显示该对话框

我的问题是在第一次显示对话框和listview时。但我无法获取所选项目

当用户第二次在同一文本框中单击时,该对话框不会显示

守则:

<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;
    }