如何在一个html文件中将pageinit用于多个data-role = page

时间:2013-07-17 06:50:21

标签: android jquery jquery-mobile cordova page-init

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

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

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

请帮我解决一下。

2 个答案:

答案 0 :(得分:3)

Pageinit 应该只运行一次,就像文档就绪一样。

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

详细了解 here

答案 1 :(得分:0)

根据文档,

Pageinit 应该只发射一次,但至少在之前的版本中并不是真正的事实。

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

Document pageinit fires more than once on iOS (jQueryMobile)