0

我在 html/jQM 中构建了一个测试页面。它只是一个 html 文件。我用 phonegap-build 构建了一个 .apk 来在我的 Galaxy s4 (4.2.2) 上测试它。

我的问题是,第一页转换没有显示。我选择哪种过渡(滑动、弹出、淡入淡出、翻转……)并不重要。始终不存在第一个过渡。

我尝试了 href="#blabla" 和 changePage("#blabla")。

如果我更改页面(未显示过渡),请返回并再次更改页面,过渡就在那里。只是第一次总是错过。

所有其他页面转换都有效。

有任何想法吗?

这是代码:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Page Title</title> 

    <meta name="viewport" content="width=device-width, initial-scale=1"> 

    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
    <script src="java.js"></script>
</head> 
<body> 

<div data-role="page" id="index">
    <div data-role="header">
        <h1>Index</h1>
    </div><!-- /header -->

    <div data-role="content">   
        <ul data-role = "listview" id="index_list">
            <!-- Liste wird mit jQuery gefüllt! -->
        </ul>
    </div><!-- /content -->

    <div data-role="footer">
        <h4>Page Footer</h4>
    </div><!-- /footer -->
</div><!-- /page -->


<div data-role="page" id="page2">
    <div data-role="header">
        <h1>Index</h1>
    </div><!-- /header -->

    <div data-role="content">   
        <ul data-role = "listview" id="page2_list">
            <!-- Liste wird mit jQuery gefüllt! -->
        </ul>
    </div><!-- /content -->

    <div data-role="footer">
        <h4>Page Footer</h4>
    </div><!-- /footer -->
</div><!-- /page -->

<div data-role="page" id="page3">
    <div data-role="header">
        <h1>Index</h1>
    </div><!-- /header -->

    <div data-role="content">   
        <ul data-role = "listview" id="page3_list">
            <!-- Liste wird mit jQuery gefüllt! -->
        </ul>
    </div><!-- /content -->

    <div data-role="footer">
        <h4>Page Footer</h4>
    </div><!-- /footer -->
</div><!-- /page -->

<div data-role="page" id="page4">
    <div data-role="header">
        <h1>Index</h1>
    </div><!-- /header -->

    <div data-role="content">   
        <ul data-role = "listview" id="page4_list">
            <!-- Liste wird mit jQuery gefüllt! -->
        </ul>
    </div><!-- /content -->

    <div data-role="footer">
        <h4>Page Footer</h4>
    </div><!-- /footer -->
</div><!-- /page -->

<div data-role="page" id="index2">
    <div data-role="header">
        <h1>Index</h1>
    </div><!-- /header -->

    <div data-role="content">   
        <ul data-role = "listview" id="index2_list">
            <li>Hallo</li>
            <li>Velo</li>
        </ul>
    </div><!-- /content -->

    <div data-role="footer">
        <h4>Page Footer</h4>
    </div><!-- /footer -->
</div><!-- /page -->

<div data-role="page" id="index3">
    <div data-role="header">
        <h1>Index</h1>
    </div><!-- /header -->

    <div data-role="content">   
        <ul data-role = "listview" id="index3_list">
            <li>Hallo3</li>
            <li>Velo3</li>
        </ul>
    </div><!-- /content -->

    <div data-role="footer">
        <h4>Page Footer</h4>
    </div><!-- /footer -->
</div><!-- /page -->

<script type="text/javascript">
    $(document).ready(function() {  
        //var output = $('#output');

        $.ajax({
            //url: 'http://localhost/jsontest/lcl_request_grp.php',
            url: 'XXX',
            dataType: 'jsonp',
            data: 'data',
            jsonp: 'jsoncallback',
            timeout: 5000,
            success: function(data, status){

                var html = '';
                var list = [];
                $.each(data, function(i,item){

                    //Alle Werte in einen Array Schreiben
                    //i beginnt bei 0
                    list[i] = [];
                    list[i]={};
                    list[i]['grp_id'] = item.grp_id;
                    list[i]['bezeichnung_de'] = item.bezeichnung_de;
                    list[i]['parent'] = item.parent;
                    list[i]['end'] = item.end;
                    list[i]['bezeichnung_fr'] = item.bezeichnung_fr;
                    list[i]['bezeichnung_en'] = item.bezeichnung_en;

                    //Die Werte die als parent 0 haben, in die Liste schreiben
                    if (item.parent == 0) {
                        html += '<li id="' + item.grp_id + '" parent = "' + item.parent +'"><a href="#" id="' + item.grp_id + '">' + item.bezeichnung_de + '</a></li>';
                    }
                });

                $('#index_list').append($(html));
                $('#index_list').trigger('create');    
                $('#index_list').listview('refresh');

                // Daten im LocalStorage als JSON-String speichern
                localStorage.setItem("list", JSON.stringify(list));

            },
            error: function(){
                window.alert("error!")
            }
        });

        $('#index_list').on('click', 'li', function() {
            var eintragid = $(this).attr('id');
            p_changepage(eintragid, "#page2", "#page2_list");
        });

        $( "#index" ).on( "swiperight", function() {
            $.mobile.changePage( "#index3", {
                transition: "slide",
                reverse: true,
            });   
        });

        $( "#index" ).on( "swipeleft", function() {
            $.mobile.changePage( "#index2", {
                transition: "slide",
                reverse: false,
            });   
        });

        $( "#index2" ).on( "swiperight", function() {
            $.mobile.changePage( "#index", {
                transition: "slide",
                reverse: true,
            });   
        });

        $( "#index2" ).on( "swipeleft", function() {
            $.mobile.changePage( "#index3", {
                transition: "slide",
                reverse: false,
            });   
        });

        $( "#index3" ).on( "swipeleft", function() {
            $.mobile.changePage( "#index", {
                transition: "slide",
                reverse: false,
            });   
        });

        $( "#index3" ).on( "swiperight", function() {
            $.mobile.changePage( "#index2", {
                transition: "slide",
                reverse: true,
            });   
        });

        $('#page2_list').on('click', 'li', function() {
            var eintragid = $(this).attr('id');
            p_changepage(eintragid, "#page3", "#page3_list");
        });

        $('#page3_list').on('click', 'li', function() {
            var eintragid = $(this).attr('id');
            p_changepage(eintragid, "#page4", "#page4_list");
        });

    });
</script>

</body>
</html>

和外部的“java.js”:

function p_changepage (eintragid, topage, tolist) {
    alert(window.location.pathname);
    var data = JSON.parse(localStorage.getItem("list"));
    var html = '';
    $.each(data, function(i, item) {
        if (item.parent == eintragid) {
            html += '<li id="' + item.grp_id + '" parent = "' + item.parent +'"><a href="#" id="' + item.grp_id + '">' + item.bezeichnung_de + '</a></li>';
        }
    });

    $(tolist).empty(); 
    $(tolist).append($(html));
    $(tolist).trigger('create'); 
    $.mobile.changePage( topage, {
        transition: "slide",
        reverse: false,
    });   
    $(tolist).listview('refresh');
}
4

0 回答 0