2011-12-21 35 views
1

我有一個給定的(使用HTML5的瀏覽器SQL數據庫)的SQL語句的程序,它填充了一組場在我的jQuery Mobile的頁面。 SQL語句根據通過url傳遞的ID進行更改。所以,當點擊一個按鈕/鏈接時,同樣的頁面被稱爲具有不同的參數值:index.html的ID = 545。文本沒有被加載後的新頁面渲染 - jQuery Mobile的

雖然第一個頁面加載無縫的,當我點擊這些對象中的鏈接到下一個頁面,對象(頁,按鈕,鏈接,DIV)表演,但文字顯示不出來。

爲了我用$('div').live('pageshow',function(event, ui){事件觸發執行以下操作的事件:

$("#title").text(Title); 
$("#date").text(mdate); 

當我打印標題在Chrome調試器的控制檯價值和mdate,它顯示了正確的價值。我不知道爲什麼相同的文字不會顯示在按鈕和標籤中。

任何人都可以幫助我。

謝謝

回答

2

當使用jQM時,您需要刷新控件。下面是文檔:

刷新表單元素
在jQuery的移動,一些增強表單控件風格簡單的(輸入),但其它的定製 控制(選擇,滑塊)從建,並保持與同步,在 本地控制。要以編程方式更新帶有JavaScript的表單控件,首先操作本地控件,然後使用刷新方法告訴增強控件自行更新以匹配新的 狀態。下面是關於如何更新公共表單控件的一些例子, 然後調用刷新方法:

複選框:

$("input[type='checkbox']").prop("checked",true).checkboxradio("refresh"); 

收音機:

$("input[type='radio']").prop("checked",true).checkboxradio("refresh"); 

選擇:

var myselect = $("#selectfoo"); 
myselect[0].selectedIndex = 3; 
myselect.selectmenu("refresh"); 

滑塊:

$("input[type='range']").val(60).slider("refresh"); 

翻轉開關(他們使用滑塊):

var myswitch = $("#selectbar"); 
myswitch[0].selectedIndex = 1; 
myswitch.slider("refresh"); 

,如果您需要的頁面,試試這個:

加強新的標記
頁面插件調度pagecreate事件,其中大部分部件使用自動初始化自己。只要引用了小部件插件腳本,就會自動增強 在頁面上找到的小部件的任何實例。

但是,如果通過 的Ajax生成的內容的新標記的客戶端或負載,並將其注入到一個頁面,你可以觸發創建事件 處理自動初始化包含在 新的所有插件標記。這可以在任何元素上觸發(即使是div本身),爲您節省了手動初始化每個插件 (列表視圖按鈕,選擇等)的任務。

例如,如果HTML標記(比如登錄表單)的塊是在通過Ajax加載 ,觸發創建事件來自動變換 所有它包含(這種情況下的輸入和按鈕)的微件進入 增強版本。此方案的代碼將是:

$(...new markup that contains widgets...).appendTo(".ui-page").trigger("create"); 
+0

嘿菲爾,感謝您的答覆。我沒有任何特別的控制來刷新。我只使用h4標籤和鏈接/按鈕。問題不在於渲染圖形。所有設計方面的對象都顯示出完美。我試圖做'$''pagename')。page('refresh'),$('#pagename')。listview('refresh')和$('div')。listview('refresh')'但加載新頁面後,它們都不起作用。任何其他建議。 – locorecto 2011-12-21 15:13:58

+0

你有一個例子鏈接?可能是http://jsfiddle.net? – 2011-12-21 15:17:34

+0

我的頁面太大,無法發佈整個事情。我已經生成了一個jsfiddle,負責生成數據庫的代碼,檢索和打印文本到屏幕上。 http://jsfiddle.net/Vb8jE/1/感謝您的幫助! – locorecto 2011-12-21 15:38:35