我試圖在頁面完全加載並且JQM已經照顧所有UI修改(即列表視圖,按鈕等)後,只執行一次JS代碼片段。我希望它只在該頁面上執行,而不是在後續頁面上執行。只有一次jQuery Mobile - 觸發頁面顯示事件
我第一次嘗試,是pageshow
<script>
$('[data-role=page]').live("pageshow", function() {
alert("Ready!");
});
</script>
這具有該功能現在附加到頁面的div和被執行的任何後續頁面的時候顯示每次的問題。不過,我只希望這個被執行一次,並且只針對包含該JS片段的頁面。
有沒有一種方法來監聽頁面顯示事件,而無需實際附加功能。
我能夠做到這一點的唯一途徑是通過結合和解除綁定是這樣的:
<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'的元素:'$('#我的頁面')。bind('pageinit',...)'。 – Jasper 2012-03-09 22:06:34