jquery移动触发器(';创建';)

jquery移动触发器(';创建';),jquery,jquery-mobile,Jquery,Jquery Mobile,在这种情况下,我从AJAX调用生成一个列表,然后切换到页面。执行此操作时,会出现以下错误: TypeError: d[0] is undefined [Break On This Error] ...-corner-all");this._addThumbClasses(h);this._addThumbClasses(e.find(".ui-link-in... 这是执行ajax调用并加载DIV的代码: function handleGetReports(data) {

在这种情况下,我从AJAX调用生成一个列表,然后切换到页面。执行此操作时,会出现以下错误:

  TypeError: d[0] is undefined
[Break On This Error]   

...-corner-all");this._addThumbClasses(h);this._addThumbClasses(e.find(".ui-link-in...
这是执行ajax调用并加载DIV的代码:

function handleGetReports(data) {
        $('#recentReportsText').html(data).trigger('create');
        $.mobile.changePage("#recentReportsPage", { changeHash:true});
}
function recentReports() {             
        $.post("getrecentreports.php",'',handleGetReports);
}
这是ajax调用返回的数据:

<ul data-role="listview" data-split-icon="delete"><li data-role="list-divider">08/17 01:46pm<p class="ui-li-aside">Pending</p></li>
<li><a href="#">basic Company<br/>basic Username</a><a href="javascript:deleteReport('4');">Delete</a></li><li data-role="list-divider">08/16 06:50pm<p class="ui-li-aside">Complete</p></li>
<li><a href="javascript:popUp('reports/2012-08-16-3.pdf');">basic Info</a><a href="javascript:deleteReport('3');">Delete</a></li><li data-role="list-divider">08/16 06:44pm<p class="ui-li-aside">Complete</p></li>
<li><a href="javascript:popUp('reports/2012-08-16-2.pdf');">basic Number</a><a href="javascript:deleteReport('2');">Delete</a></li><li data-role="list-divider">07/16 06:38pm<p class="ui-li-aside">Pending</p></li>
<li><a href="#">basic Address</a><a href="javascript:deleteReport('1');">Delete</a></li></ul>

编辑:顺便说一句。这只是listview的一个错误。我最初以表格的形式返回结果,在所有浏览器中都没有出现问题。

我修改了您发布的源代码,并创建了一个工作示例

html包含两个页面,第一个页面和报告页面。html是包含报告数据的文件

index.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
        <script type="text/javascript" src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
    </head>
    <body>
        <script>

            function handleGetReports(d) {
                $('#recentReportsText').html(d).trigger('create');
            }

            $(function() { 
                $('#recentReportsPage').live("pagecreate", function() {
                    $.get('test.html', function(data) {
                        handleGetReports(data);
                    });
                });
            });
        </script>

        <div data-role="page" id="firstpage" class="type-home">
            <div data-role="content">
                <a href="#recentReportsPage">Click</a>
            </div>
        </div>

        <div data-role="page" id="recentReportsPage" data-title="Recent Reports" data-needs-auth="true">
            <div data-role="header" data-theme="e">
                <a href="#firstpage" data-icon="home" data-iconpos="notext"></a>
                <h1>Recent Reports</h1>
            </div>
            <div data-role="content">        
                <div id="recentReportsText"></div>
            </div> 
        </div>
    </body>
</html>
<ul data-role="listview" data-split-icon="delete"><li data-role="list-divider">08/17 01:46pm<p class="ui-li-aside">Pending</p></li>
<li><a href="#">basic Company<br/>basic Username</a><a href="javascript:deleteReport('4');">Delete</a></li><li data-role="list-divider">08/16 06:50pm<p class="ui-li-aside">Complete</p></li>
<li><a href="javascript:popUp('reports/2012-08-16-3.pdf');">basic Info</a><a href="javascript:deleteReport('3');">Delete</a></li><li data-role="list-divider">08/16 06:44pm<p class="ui-li-aside">Complete</p></li>
<li><a href="javascript:popUp('reports/2012-08-16-2.pdf');">basic Number</a><a href="javascript:deleteReport('2');">Delete</a></li><li data-role="list-divider">07/16 06:38pm<p class="ui-li-aside">Pending</p></li>
<li><a href="#">basic Address</a><a href="javascript:deleteReport('1');">Delete</a></li></ul>

函数handleGetReports(d){
$('#recentReportsText').html(d).trigger('create');
}
$(函数(){
$('#recentReportsPage').live(“页面创建”,函数(){
$.get('test.html',函数(数据){
handleGetReports(数据);
});
});
});
最近的报告
test.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
        <script type="text/javascript" src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
    </head>
    <body>
        <script>

            function handleGetReports(d) {
                $('#recentReportsText').html(d).trigger('create');
            }

            $(function() { 
                $('#recentReportsPage').live("pagecreate", function() {
                    $.get('test.html', function(data) {
                        handleGetReports(data);
                    });
                });
            });
        </script>

        <div data-role="page" id="firstpage" class="type-home">
            <div data-role="content">
                <a href="#recentReportsPage">Click</a>
            </div>
        </div>

        <div data-role="page" id="recentReportsPage" data-title="Recent Reports" data-needs-auth="true">
            <div data-role="header" data-theme="e">
                <a href="#firstpage" data-icon="home" data-iconpos="notext"></a>
                <h1>Recent Reports</h1>
            </div>
            <div data-role="content">        
                <div id="recentReportsText"></div>
            </div> 
        </div>
    </body>
</html>
<ul data-role="listview" data-split-icon="delete"><li data-role="list-divider">08/17 01:46pm<p class="ui-li-aside">Pending</p></li>
<li><a href="#">basic Company<br/>basic Username</a><a href="javascript:deleteReport('4');">Delete</a></li><li data-role="list-divider">08/16 06:50pm<p class="ui-li-aside">Complete</p></li>
<li><a href="javascript:popUp('reports/2012-08-16-3.pdf');">basic Info</a><a href="javascript:deleteReport('3');">Delete</a></li><li data-role="list-divider">08/16 06:44pm<p class="ui-li-aside">Complete</p></li>
<li><a href="javascript:popUp('reports/2012-08-16-2.pdf');">basic Number</a><a href="javascript:deleteReport('2');">Delete</a></li><li data-role="list-divider">07/16 06:38pm<p class="ui-li-aside">Pending</p></li>
<li><a href="#">basic Address</a><a href="javascript:deleteReport('1');">Delete</a></li></ul>
  • 08/17 01:46下午

    待定

  • 08/16 06:50下午

    完成

  • 08/16 06:44下午

    完成

  • 2016年7月6日下午6:38

    待定

我希望这有帮助

BR,

Tolis

如果返回的ajaxhtml被包装在一个块中,那么它大部分是有效的(边距很奇怪)。我可以用CSS处理边距,我收回了。它在Firefox中工作。Chrome和Safari仍然会抛出错误。如果不使用.trigger('create'),然后使用$('#ListViewsId')。listview('refresh');您应该获得增强的列表。实际上,可能是因为您调用的是在已经存在的元素上创建的,而您应该执行类似以下操作:data.appendTo(“#recentReportsText”).trigger(“create”);当我执行刷新调用时,我得到一个错误:在初始化之前,Uncaught不能调用listview上的方法;尝试调用方法“刷新”,谢谢。但我已经试过了。我要么得到最初的错误,要么它第一次工作,但当我使用后退按钮,然后再次单击指向页面的链接时,我得到页面的非增强显示。要显示的列表是由.php动态生成的。这似乎是解决方案:$(document).bind('pageinit,function(){$('#recentReportsPage').live('pagecreate',function(){$.get('getrecentreports.php',function(data){handleGetReports(data);}); }); });