1. 程式人生 > >【解決方案】jquery mobile 頁面事件多次重複跳轉

【解決方案】jquery mobile 頁面事件多次重複跳轉

問題描述:

如圖,第一次跳轉(changePage)的時候跳轉函式執行了一次,但是第二次跳轉的時候函式卻執行了2次,第三次跳轉的時候TMD執行了3次。。。。。內心千萬只草泥馬狂奔!!!網上搜了一大堆資料,大部分是關於JQM的點選事件預設會多次觸發的坑爹行為。。。嘗試了很多種方法,基本無效。。。

解決方案:

$(document).bind("pageinit",function () {

    $("#opacPageA").click(function(){
        console.log("hello!!!!");
        $.mobile.changePage("opac/opacPage.html",{
            transition: "flip",
            changeHash:false
        });

    });
    
    // 阻止重複跳轉
    $(document).off('pageinit');
});


關鍵程式碼:

$(document).off('pageinit');

解釋:

在函式第一次呼叫的時候就立馬解綁事件!!!

(ps:幹完就走人,速度要快。。。)

----------------------------------- 10分鐘之後 前來補充 ------------------------------

。。。好尷尬,其實換一種繫結方式即可避免該問題的產生:

原始碼中:

$(document).bind("pageinit", function () {...

改為:

$(document).on("pageinit","#mainPage", function () {...

PS:其實之前也想過新增一個指向頁面,但是當時“$(document).bind("pageinit","#mainPage", function () {...”這樣寫無效,原因在於 bind 應該改用 on