jquery mobile動態(tài)添加元素之后不能正確渲染解決方法說明
jquerymobile動態(tài)添加元素之后有些不能被正確渲染的解決方法:
listview: 添加 jq(".detail").listview("refresh");
div或其他:添加.trigger( "create" );
======================================================================
jqm在初始化頁面時會根據(jù)data-xxx在各元素中插入jqm的屬性和類等。在頁面初始化結(jié)束后,如果動態(tài)的插入一個元素,往往顯示很丑陋,因為沒有插入jqm的樣式。這個可以用瀏覽器里的開發(fā)工具來查看,會發(fā)現(xiàn)有些元素多了很多類,而動態(tài)插入的元素代碼還是你寫的那樣子。
如果要使動態(tài)插入的元素具有jqm的樣式,可以對jqm對象觸發(fā)create事件:
<span style="font-size:18px;"> $(selector).trigger('create');</span>
create事件適用范圍廣,甚至可以是 不存在的元素(raw markup?),比如要插入一個按鈕
$('<a data-role="button">dy button</a>').appendTo('#content').trigger('create');
有些對象提供了refresh 方法,如listview、flip toggle。與create的區(qū)別是refresh方法需要作用在已存在的對象上,如
$('ul').listview('refresh'),而且refresh只會去更新新加入的元素,如listview里最新append的元素會更新,原有的保持不變。(不知有沒理解錯,有些沒測試。原文http://stackoverflow.com/questions/7663078/jquery-mobile-page-refresh-mechanism
不使用jqm樣式:
如果不希望jqm自動初始化你的元素,有兩種方法。加入data-role="none"屬性,或者在mobileinit事件中對keepNative選項進(jìn)行配置
$(document).bind('mobileinit',function(){
$.mobile.page.prototype.options.keepNative = "select, input.foo, textarea.bar";
});
相關(guān)文章
jQuery jqgrid 對含特殊字符json 數(shù)據(jù)的 Java 處理方法
在網(wǎng)頁上使用 json 數(shù)據(jù),如果數(shù)據(jù)中含有特殊字符,會比較麻煩。2011-01-01jQuery簡單獲取DIV和A標(biāo)簽元素位置的方法
這篇文章主要介紹了jQuery簡單獲取DIV和A標(biāo)簽元素位置的方法,結(jié)合實例形式分析了jQuery針對頁面div及A標(biāo)簽元素相關(guān)操作技巧,需要的朋友可以參考下2017-02-02基于JQUERY的兩個ListBox子項互相調(diào)整的實現(xiàn)代碼
基于JQUERY的兩個ListBox子項互相調(diào)整的實現(xiàn)代碼,需要的朋友可以參考下。2011-05-05jQuery綁定事件方法及區(qū)別(bind,click,on,live,one)
這篇文章主要介紹了jq綁定事件方法及區(qū)別,通過五種綁定方式使用bind()進(jìn)行操作,并和one()進(jìn)行區(qū)分,需要的朋友可以參考下2017-08-08分享28款免費實用的 JQuery 圖片和內(nèi)容滑塊插件
這篇文章主要介紹了分享28款免費實用的 JQuery 圖片和內(nèi)容滑塊插件,需要的朋友可以參考下2014-12-12JavaScript的jQuery庫插件的簡要開發(fā)指南
這篇文章主要介紹了JavaScript的jQuery庫插件的簡要開發(fā)指南,分為基于選擇器的插件和不基于選擇器的插件兩種情況,需要的朋友可以參考下2015-08-08