展会信息港展会大全

jquery mobile动态添加元素之后不能正确渲染解决方法说明
来源:互联网   发布日期:2016-01-27 15:44:44   浏览:1650次  

导读:本篇文章主要是对jquery mobile动态添加元素之后不能正确渲染解决方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助jquerymobile动态添加元素之后有些不能被正确渲染的解决方法:listview: 添加 ...

本篇文章主要是对jquery mobile动态添加元素之后不能正确渲染解决方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助

jquerymobile动态添加元素之后有些不能被正确渲染的解决方法:

listview: 添加 jq(".detail").listview("refresh");

div或其他:添加.trigger( "create" );

======================================================================

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";

});

赞助本站

人工智能实验室

相关热词: jquery mobile

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港