我正在使用脚本来使锚元素在单击时将用户导航到我的网页底部。
我做的第一件事是在 $(document).ready() 函数中调用代码,这样一旦加载了 DOM,一切都会执行。然后,当我在移动网站上的页面之间导航时,我注意到我的脚本不起作用:
$(document).ready(function(){
$("#menu-button").click(function(){
$(document).scrollTop($(".mainFooter").position().top);
});
});
但是我意识到为什么会这样,在 jQuery Mobile 中,Ajax 用于在您导航时将每个页面的内容加载到 DOM 中,并且 DOM 就绪处理程序仅针对第一页执行。要在加载和创建新页面时执行代码,您可以绑定到 pageinit 事件,该事件位于本页面底部的描述中:http: //jquerymobile.com/demos/1.1.1/docs/api/事件.html
我已经绑定到 pageinit 事件,但是如果我在不同页面之间导航然后单击同一个锚点,则锚点仍然没有将用户导航到页面底部。我很难理解为什么绑定到 pageinit 并没有解决问题。
$(document).bind('pageinit', function() {
$("#menu-button").on('click.menu', function(){
$(document).scrollTop($(".mainFooter").position().top);
});
});
我知道可以在 jQuery mobile 中关闭 AJAX,这将允许我的代码使用 $(document).ready() 函数运行。这样做使我能够实现所需的功能。理想情况下,尽管我想让 pageinit 与 AJAX 一起工作,以便每次使用 AJAX 加载页面时锚都可以工作。
任何建议将不胜感激。