我不知道如何在特定页面加载后触发回调。
例如,我有两个页面:
<!-- my page -->
<div data-role="page" id="foo">
<a href="#bar">bar</a></p>
</div><!-- /page -->
<!-- other page -->
<div data-role="page" id="bar">
<div id="slideshow"></div>
</div><!-- /page -->
很简单吧?现在我想触发该幻灯片作为回调,但前提是“栏”页面准备就绪。绑定(bind)到文档上的 pagecreate 事件会在每个 pagecreate 上触发,
$(document).bind('pagecreate') // I don't need this for every page, just my slideshows
和
$( '#bar' ).on( 'pagecreate',function(event){
whatEver(); // why you don't just work? :/
});
根本不起作用(或者我只是不知道它应该做什么)。
我做错了什么?谢谢。
最佳答案
这样做:
$(document).on('pagecreate', '#bar',function(event){
whatEver(); // why you don't just work? :/
});
但是,如果您在此页面上执行任何视觉操作(例如幻灯片),我建议使用:
$(document).on('pageshow', '#bar',function(event){
whatEver(); // why you don't just work? :/
});
jQM 在除 pageshow 之外的每个页面事件中显示视觉变化(如幻灯片插件、轮播等)时存在问题。 Pageshow 是最后一个加载的事件,在这种情况下页面已完全加载并且页面具有适当的高度。
关于jQuery mobile,如何在 ajax 页面加载后触发回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15805956/