2011-08-05 20 views
6

我有一個使用jQuery構建的應用程序(並使用各種jQuery-UI工具)。使用jQuery Mobile可以創建元素嗎?

出於某種原因,我必須將其移植到智能手機/平板電腦,並決定使用jQuery Mobile(爲了儘量減少更改次數)。

在我的香草應用程序中,我根據用戶交互創建了一些頁面元素。

例如滑塊可以這樣被創建(p是一堆則params的一個對象):

function createSlider(p){ 
    return $("<div/>",{ 
       "id":p.id, 
       "class":p.divClass, 
      }).slider({ 
       "orientation": p.align, 
       "min":p.constraint.min, 
       "max":p.constraint.max, 
       "step":p.step, 
       "value":p.curVal, 
       "animate":"normal" 
       /*and some event handling here, but it doesn't matter*/ 
      }); 

} 

同時會產生一個好看的滑塊。現在,它看起來像:

function createSlider(p){ 
    return $("<range/>",{ 
      "id":p.id, 
      "class":p.divClass, 
      "min":p.constraint.min, 
      "max":p.constraint.max, 
      "step":p.step, 
      "value":p.curVal, 
    }); 
} 

但因爲它是動態創建,全部由jQuery Mobile的頁面加載完成的東西,是不是就可以完成。

有沒有辦法強制這個初始化而不寫html中的滑塊?

謝謝。

編輯:我的,因爲它可以使用container.trigger("create"); 然而,這並不工作還沒有達到的doc找到。

EDIT2:好的創建是解決方案。

回答

4

根據文檔(請參閱編輯問題),使用trigger("create")對包含元素的作品。

而且使這項工作,你還需要記住,範圍是輸入型,而不是一個標籤...

工作液:

function createSlider(){ 
    return $("<input/>",{ 
      "type":"range", 
      "id":"sl", 
      "min":0, 
      "max":15, 
      "step":1, 
      "value":1, 
    }); 
} 

function appendSlider(){ 
    $("#yourdiv").append(createSlider()).trigger("create"); 
} 

一點題外話,jQuery的文檔手機缺少搜索選項。

+0

這對我不起作用。如果我使用.trigger(「創建」),則下拉框()看起來很奇怪,並且表現出意外。 – Ted

0

嘗試在內容被添加到的容器上調用.page()。或者,將.page()添加到您要返回的內容中也可以。

+0

這沒有奏效。我也試過觸發(「創建」);沒有任何成功。 –

+0

你能發佈你如何嘗試調用'page()'嗎? –

+0

你去那裏了:http://jsfiddle.net/bZVmk/2/ –