2011-12-02 92 views
1

data-scroll="true"如果頁面是靜態頁面,可以正常工作,但如果使用javascript動態添加頁面,則不起作用。jQueryMobile'data-scroll = true'不適用於動態注入的頁面

我的頭部分是:

<link rel="stylesheet" href="css/jquery.mobile-1.0rc2.css" /> 
<link rel="stylesheet" href="css/jquery.mobile.scrollview.css" /> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script> 
<script type="text/javascript" src="js/jquery.mobile-1.0rc2.js"></script> 
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script> 
<script type="text/javascript" src="js/jquery.mobile.scrollview.js"></script> 
<script type="text/javascript" src="js/scrollview.js"></script> 

我還添加了data-scroll屬性和使用JavaScript將其設置爲true,下面是我的代碼:

var pageHtml = "<div data-role='page' data-scroll='true' id=page" + pageId + " data-url=page" + pageId + ">"; 
var pageHeader = "<div data-role='header' data-position='fixed'><h1>" + menuItem + "</h1></div>"; 
var pageContent = "<div data-role='content' id='page" + pageId + "Content'></div>"; 
var page = pageHtml + pageHeader + pageContent + "</div>"; 
$(page).appendTo($.mobile.pageContainer); 

請幫我...

+0

看看你發佈的jQM不支持jQuery 1.7.x應該使用1.6.4,你應該升級到jQM 1.0也鏈接到演示(如http:// jsfiddle。淨)將是有益的,以及任何錯誤,你遇到 –

回答

0

您需要JQM應用該頁 - 嘗試

$(page).appendTo($.mobile.pageContainer).page(); 

甚至

$(page).appendTo($.mobile.pageContainer).trigger('create'); 

希望這有助於

更新:這裏有一個關於如何正式做

+0

@萊昂...試過這個,但仍然沒有工作... –

1

嘗試這樣的事情JQM documentation

$('yourScrollersId').scrollview(); 

我有同樣的問題,爲我工作。

更好晚於從來沒有:-)

+1

不。不工作 –

+0

不適用於我:S –

1

一個經過長期的研究,我發現了什麼是 -

我們需要加載的動態HTML,每個滾動塊,以獨特的容器秒。

爲eg.-

HTML

<div data-role="content" id="container"> 

    <div id="scrollContainer"></div> 

    <div id="anotherContainer"></div> 

</div> 

JS

,如果我們加載首先要在 'scrollContainer' 滾動型,

$('#scrollContainer').html(loadHtml); 
$("#scrollContainer").scrollview(); 
$("#scrollContainer").trigger('create'); 

那麼未來TI我,我們需要在不同的容器 -

$('#anotherContainer').html(loadHtml); 
$("#anotherContainer").scrollview(); 
$("#anotherContainer").trigger('create'); 

可選

要再次動態地加載到#scrollContainer加載,我們可以刪除&重建<div>。 執行第二代碼塊等

$('#scrollContainer').remove(); 
$('#container').append('<div id="scrollContainer"></div>'); 
//$('#scrollContainer').empty(); // simply making this DIV empty WILL NOT WORK, we need to REMOVE DYNAMIC CLASSES, STYLES also. So, its better to recreate the LOADCONTAINER 

解決方案後,應該有,但這個真正的作品。