jQuery Mobile - 仅触发一次pageshow事件

Ste*_*eve 4 jquery jquery-mobile

在页面完全加载并且JQM处理了所有ui修改(即列表视图,按钮等)之后,我试图只执行一次JS片段.我确实希望它只在该页面上执行,而不是在后续页面上执行.

我首先尝试的是页面显示

<script>
$('[data-role=page]').live("pageshow", function() {
    alert("Ready!");
}); 
</script>
Run Code Online (Sandbox Code Playgroud)

这有一个问题,即该函数现在附加到页面div,并在每次显示任何后续页面时执行.但是,我只希望执行一次,并且只对包含该JS片段的页面执行.

有没有办法收听pageshow事件,而不实际附加功能.

我能够做到的唯一方法是通过绑定和取消绑定:

<script>
$('[data-role=page]').bind("pageshow.test", testfun);

function testfun() {
    alert("Ready!");
    $('[data-role=page]').unbind("pageshow.test", testfun);
}   
</script>
Run Code Online (Sandbox Code Playgroud)

但有更优雅的方式吗?

Eki*_*Koc 7

jQuery有一个one函数来绑定一个只执行一次的事件处理程序.检查参考.