2012-01-31 67 views
1

我的html頁面加載非常漂亮,但我有一些JavaScript添加了幾個按鈕。 jQuery Mobile不會設計新創建的按鈕。如何手動調用jQuery手機

問:我如何再次運行jQuery Mobile,以便根據data-theme屬性對新創建的按鈕進行樣式設置?

回答

6

JQM文件:

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

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

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

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

創建與刷新:一個重要的區別
注意這裏是 一些小部件有創建事件和刷新方法之間的重要區別。創建事件適用於增強包含一個或多個小部件的原始標記 。刷新方法應在已編程 編程的現有(已增強)小部件上使用 ,並且需要更新UI以匹配。

舉例來說,如果你有一個頁面,您可以動態追加新的 無序列表data-role=listview屬性 頁面創建後,觸發創建列表的父元素將 將其轉化爲一個ListView控件樣式。如果更多列表項是 ,然後以編程方式添加,調用列表視圖的刷新方法 會將這些新列表項更新爲增強狀態,並保留 未更改的現有列表項。

+0

這很美! – 2012-01-31 17:48:46

+0

呃哦,我剛剛注意到我正在過度使用某個形容詞。 – 2012-01-31 17:59:25

+0

謝謝@Phill! – veeTrain 2012-04-18 18:40:46

2

我認爲你正在尋找.button()功能,您可以通過refresh弦刷新按鈕控件:

$('#my-new-button').button();//this will create a button 

$('#my-old-button').button('refresh');//this will refresh a button 

菲爾顯示了使用.trigger('create')的一個例子是一樣的.button()一個按鈕小部件。每個小部件都有一個可以調用的功能。 Listview s使用.listview()等功能

+0

所以我可以創建按鈕,然後將其附加到我想要追加的任何內容。太好了! – 2012-01-31 18:03:38