有没有办法检测Jquery Mobile中从其他插件加载的第一个页面?
我正在寻找一种方法,在加载第一个页面之前访问JQM并覆盖这些内容 JQM的初始化方式如下(根据最新的JQM代码): 因此,我可以点击两个事件:mobileinit和pagecontainercreate。我从HTML中知道这很简单,如下所示:有没有办法检测Jquery Mobile中从其他插件加载的第一个页面?,jquery,events,jquery-mobile,event-listener,Jquery,Events,Jquery Mobile,Event Listener,我正在寻找一种方法,在加载第一个页面之前访问JQM并覆盖这些内容 JQM的初始化方式如下(根据最新的JQM代码): 因此,我可以点击两个事件:mobileinit和pagecontainercreate。我从HTML中知道这很简单,如下所示: <script type="text/javascript" src="jquery-1.7.1.min.js"></script> <script type="text/javascript"> $( wind
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$( window ).bind( 'pagecontainercreate', function() {
console.log("HELLO");
});
</script>
<script type="text/javascript" src="jquery.mobile-1.1.0.multiview_con.js"></script>
<script type="text/javascript" src="plugin.js"></script>
$(窗口).bind('pagecontainercreate',函数(){
console.log(“你好”);
});
但是如果我想从JQM之后的plugin.js内部绑定到这些事件呢?如果我将同一个侦听器放在plugin.js中,它就不会启动。我想,因为太晚了。但是我需要防止默认加载第一个页面,所以一旦JQM尝试加载初始页面,对我来说就太晚了
问题:在从JQM之后的插件开始加载第一页之前,是否有任何方法可以侦听这些事件之一或任何其他事件触发 编辑:
我无法使用pageinit,因为它将在调用第一页后触发。同上,pageCreate,它也不会从插件内部触发。好。我用JQMs
autoinitialize
option()将其设置为false解决了这个问题,如下所示:
$(document).bind("mobileinit", function(){
$.mobile.autoInitializePage = false;
});
这样,Jquery Mobile将不会自动启动,但只有在我手动调用它时才会启动,如下所示:
if ( $.mobile.autoInitializePage == false){
$.mobile.initializePage();
}
我已经将最后一个代码片段放在了我的第二个插件中,在JQM触发第一个页面初始化之前,需要完全设置该插件。设置第二个插件后,我调用
initializePage()
,一切正常。您是否尝试过使用$(document.bind('mobileinit',function(){})
与$.mobile.autoInitializePage=false代码>?我可以从插件内部运行此功能吗。我想我必须在标记中设置这个选项,比如?在jQuery Mobile包含之前,您需要包含plugin.js
文件。或者在绑定到事件的jQuery Mobile文件之前至少包含一些代码。@Jasper:不能,因为它经常使用$.Mobile.“functions”。也许您可以将整个插件包装到mobileinit中?
if ( $.mobile.autoInitializePage == false){
$.mobile.initializePage();
}