2

我的一个 html 文件中有多个页面。我试图在第二个 data-role="page" 上实现 pageinit 事件处理程序。所以我在它的特定 data-role="page" 中声明了 pageinit。

 <div data-role="page"  id="foo3" data-dom-cache="false">
<script>
    $(document).on('pageinit','#foo3' , function(){ 
    abcsong_file_path = '/android_asset/www/audio/abcsong.mp3';


        my_abc = new Media(abcsong_file_path);

        my_abc.play();
        var i =0;
        var time;
        function my_loop(){
        setTimeout(function (){


            var my_alphabets = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
            $('#content_loop2').append('<img src="img/alphabets/'+my_alphabets[i]+'.png" />');
            i++;
            time = 700;

                if(i<26)
                {
                    my_loop();
                }

            }, time)
        }
        my_loop();
    });
</script>
    <div data-role="header" data-theme="b">

        </div>
        <div data-role="content" >

            <div id="content_loop2"  data-inset="true">

            </div>
        </div>
        <div data-role="footer" >

        </div>
    </div>

我所期望的是每次访问此页面时它都会初始化。但它只有在我第一次打开它时才能正常运行。每隔一次它只显示以前执行的代码的输出。

请帮助我如何去做。

4

2 回答 2

3

Pageinit应该只运行一次,它被制作成就像准备好文档一样。

如果您希望每次访问页面时都运行代码,请使用pageshowpagebeforeshow

在此处阅读更多相关信息。

于 2013-07-17T07:08:21.400 回答
0

根据文档, Pageinit应该只触发一次,但至少在以前的版本中这不是实际情况。

我目前正在使用 jQM 1.3.2,并且在 Android 或桌面浏览器中不再遇到此问题。但请注意它,特别是如果您也在使用 Phonegap。

文档 pageinit 在 iOS (jQueryMobile) 上多次触发

于 2013-09-17T08:45:04.680 回答