我從ajax調用服務器上得到一個錨標籤代碼片段html。我如何「刷新」,以便jquery mobile可以將必要的類添加到鏈接?如何在jquery Mobile中重新呈現動態生成的錨標記?
例如是jQuery Mobile的產生具有UI鏈接的鏈接:
<a class="ui-link" href="http://www.google.com">http://www.google.com</a>
如何確保正確的樣式是在新生成的錨標記附加?
我從ajax調用服務器上得到一個錨標籤代碼片段html。我如何「刷新」,以便jquery mobile可以將必要的類添加到鏈接?如何在jquery Mobile中重新呈現動態生成的錨標記?
例如是jQuery Mobile的產生具有UI鏈接的鏈接:
<a class="ui-link" href="http://www.google.com">http://www.google.com</a>
如何確保正確的樣式是在新生成的錨標記附加?
這裏是刷新造型爲jQuery Mobile的按鈕的至少一種方式:
$(yourButtons).button('refresh');
文檔:http://jquerymobile.com/test/docs/buttons/buttons-types.html
如果你想刷新已經初始化,那麼你可以刷新每種類型的控件小部件的使用它的相應的功能:
$('.ui-btn').button('refresh');
通知我用.ui-btn
類選擇對接在元素上,一旦按鈕被初始化,這個類就會被添加,所以你可以確定你正在刷新已經初始化的按鈕控件。
文檔:http://jquerymobile.com/demos/1.1.0-rc.1/docs/buttons/buttons-methods.html
如果您需要初始化那些還沒有被初始化的窗口小部件,那麼你只要省略'refresh'
或使用.trigger('create')
:
$('[data-role="button"], button, input[type="button"], input[type="submit"]').not('.ui-btn').button();//or .trigger('create');
注意這裏我省略了已初始化部件通過使用.not('.ui-btn')
,所以這隻會初始化未初始化的小部件。如果你試圖初始化一個已經初始化的小部件,那麼你會得到一個錯誤(如果你嘗試刷新一個尚未初始化的小部件,就會發生錯誤)。
如果你的HTML是由服務器輸出的,那麼你可以將它們添加到DOM之前初始化部件:
$.ajax({
...
success : function (serverResponse) {
var $out = $(serverResponse);
//if there is a container with elements inside it, use `.find()`,
//if all the elements are siblings at the top level then use `.filter()`
$out.find('a').button();
$('body').append($out);
}
});
您還可以使用.buttonMarkup()
功能更新按鈕部件: http://jquerymobile.com/demos/1.1.0-rc.1/docs/buttons/buttons-options.html
運行函數作爲Ajax調用的'success'回調的一部分? – 2012-03-15 19:04:22
你可以發佈你的JS代碼嗎?你試圖「刷新」什麼小工具? – Jasper 2012-03-15 19:05:39