2016-07-21 68 views
0

我從jquerymobile 1.2到1.4.5從jquerymobile 1.2.1遷移到1.4.5

以下語法開始在我的應用中的內容對每個我的網頁遷移了,

$("#DemoAccountRegistrationPage").live("pageshow", function() { 

我已經能夠找出我需要過渡到.live。對因此上述變成每個頁面引用

$("#DemoAccountRegistrationPage").on("pagecontainershow", function() { 

但我意識到,上面的格式仍然是1.4.5,因此爲什麼不兼容合作ntent沒有加載

可有人請我提供正確的語法能夠改變

$("#DemoAccountRegistrationPage").on("pagecontainershow", function() { 

正確的語法符合1.4.5

我已經閱讀了jQuery的文檔,但不能完全理解正確的語法需要什麼(對jQuery移動來說是非常新的)

回答

0

jQuery文檔在這方面並不十分清楚,但簡而言之,0123Q已在JQM 1.4.0中棄用,以支持使用pagecontainershow上的pagecontainer widget

我能夠通過將pagecontainershow偵聽器添加到document,然後檢查參數以確定它是否與我想要的頁面匹配,是這樣的:

$(document).on('pagecontainershow', function(event, ui) { 
    if(ui.toPage[0].id == "my_page_id"){ 
     // do some stuff for my_page 
    } 
}); 

我試圖讓更多的可重複使用的,像這樣:

function on_pagecontainershow(page_id, fn){ 
    $(document).on('pagecontainershow', function(event, ui) { 
    if(ui.toPage[0].id == page_id){ 
     fn(); 
    } 
    }); 
} 

on_pagecontainershow('test_page', function(){ 
    alert('pagecontainershow triggered'); 
}); 

語法我嘗試和失敗,讓工作:

$(document).on('pagecontainershow', '#test_page', function(event, ui) { 
    alert("I don't get called (1)"); 
}); 

$(document).delegate("#test_page", "pagecontainershow", function() { 
    alert("I don't get called (2)"); 
}); 

$("#test_page").on("pagecontainershow", function() { 
    alert("I don't get called (3)"); 
}); 

你可以試試它在this fiddle

0

這個工作對我來說,因爲我在我的項目之一使用它:

$(document).on("pagecontainershow", function(e, ui) { 
    var pageId = $(":mobile-pagecontainer").pagecontainer("getActivePage").prop("id"); 
    if (typeof ui.toPage == "object") { 
     /* manipulate page navigating to */ 
     switch(pageId) { 
      case "page-one": 
       //do stuff 
       break; 
      case "page-two": 
       // do other stuff 
       break; 
     } 
    } 
});