2

我正在尝试让一个插件在 JQM 上运行,但我需要它在第二页处于活动状态时等待并加载。现在,它在启动时加载。我的页面设置为data-role='page'. 这是我的代码:

$(document).ready(function(){
    $("#two").bind('pageinit')
    jQuery(".namesleft").fitText();
    jQuery(".scoreleft").fitText();
    jQuery(".namesright").fitText();
    jQuery(".scoreright").fitText();
});

在此先感谢您的帮助

4

3 回答 3

1

jQuery mobile 可以替代$(document).ready. 代码应如下所示:

    <script type="text/javascript">
       $('div:jqmData(role="page")').live('pagebeforeshow',function(){
             // code to execute on each page change
       });
</script>

事实上,jQm 有一整套事件替代常规 jQuery 事件:http: //jquerymobile.com/demos/1.2.1/docs/api/events.html

于 2013-04-03T05:31:46.057 回答
1

这是一个有效的 jsFiddle 示例:http: //jsfiddle.net/Gajotres/F2Gcm/

$(document).on('pageshow', '#index', function(){       
    $("h1").fitText(0.273);
    $(".download").fitText(1);
});

应该使用on方法而不是live方法来绑定页面事件,live方法已被弃用并且在 jQuery 1.9+ 中不存在。

这也应该绑定到pageshow事件,因为它在任何其他情况下都不起作用。jQuery Mobile 对插件进行视觉更改非常严格,这种插件只能在pageshow事件中使用。

如果您想更好地了解 jQuery Mobile 页面事件,请查看这篇文章,或在此处找到它。

于 2013-04-03T07:21:51.573 回答
0

您可以在 JQM 的 pageshow 事件中添加代码,例如:

$("#two").live('pageshow', function(){
    $(".namesleft, .scoreleft, .namesright, .scoreright").fitText();
});
于 2013-04-03T05:43:58.090 回答