我正在爲項目使用jQuery Mobile和Backbone JS。這主要是工作,使用jQuery Mobile的事件'pagebeforeshow'來觸發正確的骨幹視圖。在特定的jQuery Mobile頁面的Backbone View中,這就是它在做所有需要的動態事物的地方。視圖所做的一些事情是使用Underscore的模板系統吸引特定的位。jQuery Mobile呈現頁面初始化後添加內容的問題
這一切都很棒,直到我使用模板系統拉動表單位。例如,一組動態單選按鈕(由Backbone Collection生成)。這些單選按鈕我想使用jQuery Mobile提供的功能進行設計。目前,jQuery Mobile沒有采用這些動態注入的單選按鈕。我之前通過再次調用jQuery Mobile小部件「slider()」方法執行滑塊時解決了此問題,並且它似乎刷新了它們......這似乎並不適用於這些單選按鈕。
中的骨幹視圖,我試圖再次調用控件的方法:
$(this.el).find("input[type='radio']").checkboxradio();
$(this.el).find(":jqmData(role='controlgroup')").controlgroup();
我嘗試過其他的方式太繞,但它似乎我需要做的是這樣的分組造型工作等但這看起來不正確! ...當我單擊單選按鈕時,這樣做也會導致錯誤,並說:「在初始化之前無法在checkboxradio上調用方法;試圖調用方法'refresh'」?
似乎應該有一種方法在jQuery Mobile中重新初始化頁面或其他東西?我注意到源代碼中有一個'頁面'小部件。
jQuery Mobile如何處理在頁面生成後被注入到DOM中的表單/元素?處理它如何構成表單有沒有一種乾淨的方式?必須有一種乾淨的方式來調用表單來呈現「jQuery Mobile方式」,而不僅僅依賴基本HTML中的數據屬性標記?
任何幫助或深入瞭解這個問題將不勝感激...我非常想嘗試讓Backbone JS和jQuery Mobile良好地協作。
非常感謝,詹姆斯
謝謝。我遵循你的話。在這種特殊情況下,我不得不使用$(element).page(「destroy」)。page()出於某種原因?但即使這樣也不行。它正確地呈現了內容,但它不正確。獲得相同的錯誤:「在初始化之前無法在checkboxradio上調用方法;嘗試調用方法'refresh'」......奇怪。 – littlejim84 2011-04-14 10:28:56
'.page'可以在元素上調用一次。你必須圍繞你動態添加的內容創建一個包裝div。 – naugtur 2011-04-14 11:04:22
呃,那是stoopid。所以如果我有一個100%的Ajax頁面,我想重新加載我的選項,我必須每次創建一個包裝元素!必須是更好的方法。 – 2011-06-06 23:52:27