jquery mobile动态添加元素之后不能正确渲染解决方法说明 |
本文标签:jquery,mobile jquerymobile动态添加元素之后有些不能被正确渲染的解决方法: jqm在初始化页面时会根据data-xxx在各元素中插入jqm的属性和类等 。在页面初始化结束后,如果动态的插入一个元素,往往显示很丑陋,因为没有插入jqm的样式 。这个可以用浏览器里的开发工具来查看,会发现有些元素多了很多类,而动态插入的元素代码还是你写的那样子 。 如果要使动态插入的元素具有jqm的样式,可以对jqm对象触发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的区别是refresh方法需要作用在已存在的对象上,如 $(ul).listview(refresh),而且refresh只会去更新新加入的元素,如listview里最新append的元素会更新,原有的保持不变 。(不知有没理解错,有些没测试 。原文http://stackoverflow.com/questions/7663078/jquery-mobile-page-refresh-mechanism 不使用jqm样式: 如果不希望jqm自动初始化你的元素,有两种方法 。加入data-role="none"属性,或者在mobileinit事件中对keepNative选项进行配置 复制代码 代码如下: $(document).bind(mobileinit,function(){ $.mobile.page.prototype.options.keepNative = "select, input.foo, textarea.bar"; }); |