如何在jquery mobile中初始化页面?pageinit没有开火

Leo*_*opd 41 jquery-mobile

在jquery移动页面上初始化对象的正确方法是什么?该事件的文档说,使用" pageInit()"没有该功能的例子,但给的结合实例" pageinit"方法(注意大小写的区别).但是,在这个简单的测试页面中,我根本没有看到事件触发:

<html>
 <body>  
  <script type="text/javascript" charset="utf-8" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>  
  <script type="text/javascript" charset="utf-8" src="http://code.jquery.com/mobile/1.0b3/jquery.mobile-1.0b3.min.js"></script>

  <div data-role="page" id="myPage">
    test
  </div>

  <script>
    $("#myPage").live('pageinit',function() {
        alert("This never happens");
    });
  </script>
 </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我错过了什么?我应该补充说,如果你改变pageinit到另一个事件,像pagecreate这样的代码工作.

----更新----

错误在JQM问题跟踪器中标记为"已关闭".显然,对于这是否正常工作,意见不一.

小智 66

当我在页面div中嵌入脚本时,它开始工作:

<body>
    <div id="indexPage" data-role="page">
        <script type="text/javascript">
            $("#indexPage").live('pageinit', function() {
                // do something here...
            });
        </script>
    </div>
</body>
Run Code Online (Sandbox Code Playgroud)

使用jQuery Mobile 1.0RC1

  • 经过长时间的搜索,我终于在[Jquery Mobile的文档](http://jquerymobile.com/test/docs/pages/page-scripting.html)中找到了这一点:针对特定于页面的脚本编写的另一种方法是在脚本中包含脚本未定义data-role = page元素时或在第一个data-role = page元素内的body元素的结尾.所以这是设计的. (3认同)

小智 21

.live()不推荐使用,建议.on()在jQuery 1.7+中使用:

<script type="text/javascript">
    $(document).on('pageinit', '#indexPage',  function(){
        // code 
    });
</script>
Run Code Online (Sandbox Code Playgroud)

有关以下内容的详细信息,请查看在线文档.on():http://api.jquery.com/on/


Leo*_*opd 9

事实证明这是1.0b3中的一个错误,它在当前头部修复.所以,如果你现在需要修复,你必须从git中获取最新信息.或者等待下一个版本.

  • 我刚刚确认它仍然是1.1中的一个错误. (2认同)