jQuery Mobile动态刷新页面样式的实现方法


Posted in Javascript onMay 28, 2016

当我们使用Ajax或者javascript动态在页面上添加元素后,如添加select控件的option元素,添加ul的li元素。添加之后我们会发现,它们显示的样式不是jQuery Mobile的炫酷样式了,而变成了很丑陋的元素样式。如下图所示:

 jQuery Mobile动态刷新页面样式的实现方法

代码如下:

<script>
      function myFunction() {
        var ul = document.getElementById("myul");
        var li1 = "<li data-role=\"fieldcontain\">信息2</li>";
        var li2 = "<li data-role=\"fieldcontain\">信息3</li>";
        ul.innerHTML += li1;
        ul.innerHTML += li2;
      }
    </script>

    <!-- listview测试 -->
     <ul data-role="listview" data-inset="true" id="myul">
         <li data-role="list-divider">信息列表</li>
         <li data-role="fieldcontain">信息1</li>
     </ul>

可以看到,jQuery Mobile并没有对于新添加的元素进行渲染。这种情况下就需要对元素的样式进行刷新。

刷新代码如下:

<script>
      function myFunction() {
        var ul = document.getElementById("myul");
        var li1 = "<li data-role=\"fieldcontain\">信息2</li>";
        var li2 = "<li data-role=\"fieldcontain\">信息3</li>";
        ul.innerHTML += li1;
        ul.innerHTML += li2;
        
        //刷新jQuery Mobile样式
        $('#myul').listview('refresh');
      }
    </script>

其实最重要的一句刷新代码是:$('#myul').listview('refresh');

刷新后的效果如下图所示:

 

jQuery Mobile动态刷新页面样式的实现方法

注意:在使用js或者jQuery获取控件(例如:button、checkbox、radiobutton等)的值时,也是需要先刷新,否则无法获取到最新的值。

下面列出常用的标签的refresh操作,其他的可以举一反三。

1.  Listview的refresh操作:

$('#mylistid').listview('refresh');

2. select menu的refresh操作:

var myselect = $("#myselect");

myselect[0].selectedIndex = 2;

myselect.selectmenu("refresh");

3. Checkboxes的refresh操作:

$("#mycheckboxid").attr("checked",true).checkboxradio("refresh");

4. Radio buttons的refresh操作:

$("#myradioid").attr("checked",true).checkboxradio("refresh"); 

新加的:

 各类标签的刷新

1.Textarea fields

$('body').prepend('<textarea id="myTextArea"></textarea>');
$('#myTextArea').textinput();

2.Text input fields

$('body').prepend('<input type="text" id="myTextField" />');
$('#myTextField').textinput();

3.Buttons

$('body').append('<a href="" data-theme="e" id="myNewButton">testing</a>');
$('#myNewButton').button();

4.Combobox or select dropdowns

<label for="sCountry">Country:</label>
<select name="sCountry"id="sCountry">
<option value="">Where You Live:</option>
<option value="ad">Andorra</option>
<option value="ae">United Arab Emirates</option>
</select> 
 
var myselect = $("#sCountry");
myselect[0].selectedIndex = 3;
myselect.selectmenu('refresh');

5.Listviews

<ul id="myList"data-role="listview"data-inset="true">
<li>Acura</li> 
<li>Audi</li> 
<li>BMW</li> 
</ul> 
 
$('#mylist').listview('refresh');

6.Slider control

<div data-role="fieldcontain">
<label for="slider-2">Input slider:</label>
<input type="range"id="slider-2"value="25"min="0"max="100"/>
</div> 
 
$('#slider-2').val(80).slider('refresh');

7.Toggle switch

<div data-role="fieldcontain">
<label for="toggle">Flipswitch:</label>
<select name="toggle"id="toggle"data-role="slider">
<option value="off">Off</option>
<option value="on">On</option>
</select> 
</div> 
 
var myswitch = $("#toggle");
myswitch[0].selectedIndex = 1;
myswitch .slider("refresh");

8.Radio buttons

<div data-role="fieldcontain">
  <fieldset data-role="controlgroup"data-type="horizontal">
   <legend>Layout view:</legend>
     <input type="radio"name="radio-view"value="list"/>
     <labelfor="radio-view-a">List</label>
     <input type="radio"name="radio-view"value="grid"/>
     <labelfor="radio-view-b">Grid</label>
     <input type="radio"name="radio-view"value="gallery"/>
     <labelfor="radio-view-c">Gallery</label>
  </fieldset>
</div> 
 
$("input[value=grid]").attr('checked',true).checkboxradio('refresh');

9.Checkboxes

<div data-role="fieldcontain">
<fieldset data-role="controlgroup">
<legend>Agree to the terms:</legend>
<input type="checkbox"name="checkbox-1"id="checkbox-1"class="custom"/>
<label for="checkbox-1">I agree</label>
</fieldset> 
</div> 
 
$('#checkbox-1').attr('checked',true).checkboxradio('refresh');

以上这篇jQuery Mobile动态刷新页面样式的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
Jun 19 Javascript
JS中获取数据库中的值的方法
Jul 14 Javascript
节点的插入之append()和appendTo()的用法介绍
Jan 13 Javascript
js对图片base64编码字符串进行解码并输出图像示例
Mar 17 Javascript
JS实现的3D拖拽翻页效果代码
Oct 31 Javascript
EasyUI学习之Combobox下拉列表(1)
Dec 29 Javascript
jQuery插件form-validation-engine正则表达式操作示例
Feb 09 Javascript
微信小程序 在线支付功能的实现
Mar 14 Javascript
在使用JSON格式处理数据时应该注意的问题小结
May 20 Javascript
React 路由懒加载的几种实现方案
Oct 23 Javascript
JavaScript实现滑块验证解锁
Jan 07 Javascript
浅析JavaScript中的变量提升
Jun 01 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
May 28 #Javascript
jQuery操作动态生成的内容的方法
May 28 #Javascript
javascript 用函数实现继承详解
May 28 #Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
May 28 #Javascript
jQuery实现布局高宽自适应的简单实例
May 28 #Javascript
jquery mobile界面数据刷新的实现方法
May 28 #Javascript
jquery自适应布局的简单实例
May 28 #Javascript
You might like
php比较多维数组中值的大小排序实现代码
2012/09/08 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
2013/06/29 PHP
培养自己的php编码规范
2015/09/28 PHP
PHPCMS V9 添加二级导航的思路详解
2016/10/20 PHP
php-fpm服务启动脚本的方法
2018/04/27 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
splice slice区别
2006/10/09 Javascript
jQuery select控制插件
2009/08/17 Javascript
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
js定时调用方法成功后并停止调用示例
2014/04/08 Javascript
javascript实现列表滚动的方法
2015/07/30 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
只需五句话搞定JavaScript作用域(经典)
2016/07/26 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
原生JS发送异步数据请求
2017/06/08 Javascript
通过命令行生成vue项目框架的方法
2017/07/12 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
使用Python脚本实现批量网站存活检测遇到问题及解决方法
2016/10/11 Python
python中实现数组和列表读取一列的方法
2018/04/03 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
python里dict变成list实例方法
2019/06/26 Python
pytorch中的transforms模块实例详解
2019/12/31 Python
Python如何在DataFrame增加数值
2020/02/14 Python
Python Celery异步任务队列使用方法解析
2020/08/10 Python
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
美国最大最全的亚洲购物网站:美国亚米网(Yamibuy)
2020/05/05 全球购物
大学四年规划书范文
2013/12/27 职场文书
乡镇交通安全实施方案
2014/03/29 职场文书
《假如》教学反思
2014/04/17 职场文书
秋季运动会广播稿(30篇)
2014/09/13 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
公务员岗前培训心得体会
2016/01/08 职场文书
学者《孟子》名人名言
2019/08/09 职场文书
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python