2013-06-21 29 views
1

添加我綁定到pageinit事件像這樣再結合:jQuery Mobile的pageinit上的每個頁面加載

$('#mypage').on("pageinit", function() { 

    $('#login-sumbit').on('click', function() { 
     console.log('button clicked'); 
    }); 

}); 

我希望pageinit點擊事件一次只能綁定。但是,在我的單頁面應用程序中發生的情況是,即使點擊返回,每次頁面加載時按鈕都會綁定。

這會導致不需要的多重重複結合。有關在單個頁面應用程序中只使用一次綁定的事件的任何想法,以便在同一會話中再次加載頁面(後退按鈕,加載內聯頁面)不會重新綁定?

回答

0

看起來我自己找到了答案,每次頁面加載時都會發生正確的pageinit觸發,即使它不是從服務器重新加載,否則在顯示新頁面時會觸發。

pageinit是正確的事件,但我需要使用.one不.on,.one將只綁定一次。

$('#mypage').on("pageinit", function() { 

    $('#login-sumbit').one('click', function() { 
     console.log('button clicked'); 
    }); 

}); 

現在一切都按預期工作。更好的是,我發現你可以使用.one和pageinit事件來更好地控制綁定和數據加載,以滿足我的需求。

http://api.jquery.com/one/

0

你可以使用:

$('#login-sumbit').off('click').on('click', function(e) { 
    console.log('button clicked'); 
}); 
+0

謝謝,我想。一()是一個捷徑。 – DalSoft