JQuery Mobile - 解决动态更新页面内容,CSS失效问题!
今天编写JQuery Mobile程序,需要对数组数据动态创建,并且每条数据对应一个复选框,于是我很顺利写了一个Demo,当我运行时候发现,和我期望的不一样!复选框确实创建出来了,但是却没有CSS效果,完全是Html的!于是上网搜索,想尽快解决,但是,发现网上目前提供的方法都无法解决!!最终,我就算是搞定这个问题了吧,下面我说说解决方法,抛砖引玉!
我最开始的想法是直接使用控件组,那样直接就创建出来一组复选框了,我对这个复选框父控件插入我动态更新的内容,不就可以了吗?这是我最开始的代码:
<fieldset data-role="controlgroup" style="margin-left: -5px" id="activity-controlgroup" class="test">
<label for="red">包饺子</label>
<input type="checkbox" name="activity-radio" id="red" value="red">
<label for="green">丢手绢</label>
<input type="checkbox" name="activity-radio" id="green" value="green">
<label for="blue">投沙包</label>
<input type="checkbox" name="activity-radio" id="blue" value="blue">
</fieldset>
但是,经过一番努力,发现在动态更新了里面内容后,怎么也无法让JQuery Mobile启动CSS,和其它控件风格一致!!!!
折腾半天后,停下来,喝了一点咖啡,随后我就开始想,这个东西到底该怎么能到达或接近JQuery Mobile的CSS效果呢?让这些复选框和这个页面中的其它JQuery Mobile效果一致?在我的程序里面,很多地方用到了listview,它也需要动态更新数据,listview有个方法“refresh”,在更新完数据后,调用这个方法就可以了!于是,我就去JQuery Mobile的官方网站看资料去了,最终查看以下这么多控件具备“refresh”方法:
具备refresh方法的控件:
10,Tabs Widget
好了,我为什么去看哪些控件具备“refresh”方法呢?换成Delphi来说吧,并不是所有它的控件都具备容器功能,有容器功能的控件可以容纳其它控件,不仅仅是Delphi,包括其它很多种图形界面开发工具和具有图形库的语言,都是这样的!那么很可能,在JQuery Mobile里,具备“refresh”方法的控件,是容器功能控件,可以容纳其它控件!如果是这样,那么,我把我要动态加载的复选框放到具备“refresh”方法的容器控件里,是不是就可以了呢?下面就是我当前的代码:
1,被点击的按钮。点击它,动态创建那些要更新的内容,并更新到指定位置。
<a href="#" id="activityDetail2-selectCourse" onclick="CreateActivity()"
class="ui-btn ui-corner-all ui-shadow ui-btn-inline"
style="padding-top: 5px;padding-bottom: 5px;padding-left: 15px;padding-right: 15px;margin-left: -5px;margin-top: -5px">选择课时</a>
2,响应上面按钮的函数。
<script language="JavaScript">
function CreateActivity() {
//要更新的数据
var temp = '';
for (var i = 1; i < 5; i++) {
temp += '<label for="activity-' + i + '" >活动 ' + i + '</label>';
temp += '<input type="checkbox" name="activity" id="activity-' + i + '" value="">';
}
//对指定的工具栏更新数据
$("#activity-controlgroup").html(temp);
//刷新刚动态更新数据的工具栏
$("#activity-controlgroup").toolbar("refresh");
}
</script>
3,两个Toolbar类型的容器。两个做对比。
<div data-role="footer" id="activity-controlgroup2">
<h4>Powered by jQuery Mobile</h4>
</div> <br> <div data-role="footer" id="activity-controlgroup" class="ui-corner-all ui-shadow">
<h4>Powered by jQuery Mobile</h4>
</div>
截图就不上了,把这些代码放到可以正常运行的JQuery Mobile页面中,运行一下就可以看到效果了!目前这种程度不一定完全适合每个人,个人根据自己需要继续调整CSS吧!!
参考:
https://api.jquerymobile.com/category/widgets/
http://demos.jquerymobile.com/1.4.4/toolbar/#&ui-state=dialog
JQuery Mobile - 解决动态更新页面内容,CSS失效问题!的更多相关文章
- Jquery Mobile局部刷新后js和css失效,需局部渲染
$(function () { $("#submit").click(function(){ var storage = window.localStorage; ...
- 【Jquery mobile】动态加载ListView 转
[Jquery mobile]动态加载ListView 分类: Jquery Mobile2011-12-01 09:04 13984人阅读 评论(1) 收藏 举报 jquerylistviewmob ...
- jquery mobile左右滑动切换页面
jquery mobile左右滑动切换页面 $(function() {$("body").bind('swiperight', function() { $.mobile.ch ...
- jquery mobile Checkbox动态添加刷新及事件绑定
jquery mobile Checkbox动态添加刷新及事件绑定 在微信项目中,涉及到一个多选功能.数据来自后台数据库,需要动态加载. 项目结构:微信api+web app.使用jquery mob ...
- 动态为页面添加CSS样式文件引用
动态为页面添加CSS样式文件引用: if (document.createStyleSheet) { //IE document.createStyleSheet("./Themes/Def ...
- Jquery Mobile通过超链接跳转后CSS样式不起作用的解决办法
Jquery Mobile中的超链接默认是采用AJAX跳转的,ajax获取到页面的内容之后,就直接替换当前页面的内容了,它只是单纯的获取页面的HTML代码,并不会再去下载引用的CSS代码和JS代码,因 ...
- Android+Jquery Mobile学习系列(4)-页面跳转及参数传递
关于页面转场,这个必须得专门列出来说明一下,因为Jquery Mobile与普通的Web发开有一些区别,这个对于新手如果不了解的话,就会钻到死胡同.撸主前段时间就是很急躁地上手开发程序,结果在页面转场 ...
- Android+Jquery Mobile学习系列(4)-页面转场及参数传递
关于页面转场,这个必须得专门列出来说明一下,因为Jquery Mobile与普通的Web发开有一些区别,这个对于新手如果不了解的话,就会钻到死胡同.撸主前段时间就是很急躁地上手开发程序,结果在页面转场 ...
- jquery mobile转场时加载js失效(转)
jquery mobile拦截了所有的http请求,并使用ajax请求取代传统的http.请求发出后,框架会将请求的内容插入到页面中data- role="page"的部分,取代原 ...
随机推荐
- PAT 1079 延迟的回文数(代码+思路)
1079 延迟的回文数(20 分) 给定一个 k+1 位的正整数 N,写成 ak⋯a1a0 的形式,其中对所有 i 有 0≤ai<10 且 ak>0.N 被称 ...
- python生成验证码,文字转换为图片-乾颐堂
在58或者赶集等一些网站上经常看到手机号是图片格式,或者一些网站的验证码.这些都是动态生成的,今天我们来看一下如何用python把文字生成图片.其实今天主要借助pygame的图像渲染模块,这样比较简单 ...
- c++ 对象复制引用时何时调用构造函数、析构函数
class TEST{ private : public : TEST() {std::cout << "constructor" << std::endl ...
- apicloud代码压缩和全局加密
首先说代码压缩,因为没什么用,就先说它了.代码压缩后,apicloud里面的css和js文件里面的空格呀回车呀都去掉了,就是文件小了,所有代码显示为一行了.这些代码的变量没有重命名,我们知道jquer ...
- MySQL相关知识总结
1. 显示所有表 show tables; 还有information_schema数据库里面有tables表,记录了所有表信息 use information_schema; select * fr ...
- linux tty设置详解
http://blog.csdn.net/againyuan/article/details/3905380 linux串口termios NAME termios, tcgetattr, tcset ...
- css页面组件
页面组件 1 元素的尺寸/边框/背景 1.1 css尺寸相关属性 height 高度 min-height 最小高度 max-height 最大高度 width 宽度 min-width 最小宽度 m ...
- 2018.10.16 NOIP模拟 膜法(组合数学)
传送门 原题,原题,全TM原题. 不得不说天天考原题. 其实这题我上个月做过类似的啊,加上dzyodzyodzyo之前有讲过考试直接切了. 要求的其实就是∑i=lr(ii−l+k)\sum _{i=l ...
- C语言之控制台读取上下左右方向键指令
首先,可以检测任何按键键值 // 首先,检测任何按键的代码 #include<stdio.h> #include<conio.h> int main() { char ch; ...
- Java(Android)线程池[转]
介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用.本文是基础篇,后面会分享下线程池一些高级功能. 1.new Thread的弊端执行一个异步任务你还只是如下new T ...