在jQuery Mobile中,如何定位使用loadPage创建的元素?

时间:2011-08-17 14:32:24

标签: callback jquery-mobile

我使用$.mobile.loadPage()将“页面”加载到DOM中。然后我想要定位创建的元素,但我还没想出如何做到这一点。这是我认为可行的:

var toc = $.mobile.loadPage('toc.html');
toc.trigger('customevent');

上述部分不起作用,因为toc是一个“延迟的承诺对象”,而不是一个好的'jQuery DOM引用。此外,它不起作用,因为第二行是在loadPage完成之前触发的。有没有办法在loadPage之后触发回调?

谢谢!

3 个答案:

答案 0 :(得分:0)

如果您知道正在加载的页面的ID,那么您可以使用.live()将'pagecreate'事件绑定到该对象,如下所示:

$('#blah').live('pagecreate', function () {alert('created');});

页面加载到dom后会触发。

答案 1 :(得分:0)

我只是能够解决这个问题,即使你没有id,这里是我如何在插入的元素上执行动作(fadeIn)的一个例子....

$(document).bind('pageload',function(evt,data){ 
    $(document).unbind('pageload');  
    $(data.page).fadeIn(); 
});
$.mobile.loadPage('mypage.html',{'pageContainer':$('#my_item')});

答案 2 :(得分:-1)

您可以使用pageshow在网页加载时触发回调。有关详细信息,请参阅jQuery Mobile Events API

一个例子是:

$('div').live('pageshow',function(event, ui){
    ...
});