【发布时间】:2023-04-08 02:11:01
【问题描述】:
我只尝试执行一次 JS 的 sn-p,在页面完全加载并且 JQM 已经处理所有 ui 修改(即列表视图、按钮等)之后。我确实希望它只在该页面上执行,而不是在后续页面上。
我首先尝试的是pageshow
<script>
$('[data-role=page]').live("pageshow", function() {
alert("Ready!");
});
</script>
这有一个问题,该函数现在附加到页面 div 并且每次显示任何后续页面时都会执行。但是,我只希望它执行一次,并且只针对包含该 JS sn-p 的页面。
有没有办法在不实际附加函数的情况下监听 pageshow 事件。
我能够做到这一点的唯一方法是像这样绑定和解除绑定:
<script>
$('[data-role=page]').bind("pageshow.test", testfun);
function testfun() {
alert("Ready!");
$('[data-role=page]').unbind("pageshow.test", testfun);
}
</script>
但是有没有更优雅的方法呢?
【问题讨论】:
-
要仅绑定到单个页面,请在选择器中使用它的 ID,而不是
[data-role=page],后者会选择data-role属性设置为page的所有元素:$('#my-page').bind('pageinit', ...)。跨度>
标签: jquery-mobile jquery