如何在jQuery Mobile中使用`paginit`加载外部Javascript文件?

时间:2012-12-14 12:48:37

标签: jquery jquery-mobile

除非我点击刷新,否则滚动条不会加载。我假设这可以使用jQuery Mobile的pageinit来修复。这就是我试过的:

$('#summaryPage').live('pageinit', function(){
$.getScript('cubiq-iscroll-bad88fb/src/iscroll.js');
});

没有骰子。有任何想法吗?

4 个答案:

答案 0 :(得分:2)

var jsonp = document.createElement("script");
            jsonp.type = "text/javascript";
            jsonp.src = "cubiq-iscroll-bad88fb/src/iscroll.js";
            document.getElementsByTagName("body")[0].appendChild(jsonp);

这应该可以正常工作。如果.js工作没有错误。希望这有帮助。

答案 1 :(得分:1)

您可以尝试:

<script>
$('#summaryPage').live('pageinit', function(){
   var oHead = document.getElementsByTagName('HEAD').item(0);
   var oScript= document.createElement("script");
   oScript.type = "text/javascript";
   oScript.src="other.js";
   oHead.appendChild( oScript);
});
</script>

答案 2 :(得分:1)

因为.live将被弃用,你也可以

$(document).on('pageinit', '#summaryPage', function(){
    //append head element and custom script 
});

也可能是你加载你的脚本太晚了,自然如果我是你,我会在文档和/或设备准备就绪后立即执行,然后当页面inits检查元素是否存在如果没有,触发创建。您还可以在jquery移动API中收听事件,例如pagebeforecreate

或者更好的是,仍然将代码放在没有名称的全局函数中:

function(){
//append your script here  
}

您可以在API

中阅读jquery.com上的文档

答案 3 :(得分:1)

尝试在页面显示之前运行它:

$('div:jqmData(role="page")').live('pagebeforeshow',function(){
    $.getScript('cubiq-iscroll-bad88fb/src/iscroll.js');
});

jQuery mobile $(document).ready equivalent