jquerymobile动态添的无索刷新

当我们使用Ajax或者javascript动态在页面上添加元素后,如添加select控件的option元素,添加ul的li元素。添加之后我们会发现,它们显示的样式不是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‘);

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

注意:在使用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");

新加的:来自:http://hi.baidu.com/life_to_you/item/bf3621365fa5974b033edcbc

各类标签的刷新

1.Textarea
fields





1

2

$(‘body‘).prepend(‘<textarea id="myTextArea"></textarea>‘);

$(‘#myTextArea‘).textinput();

2.Text input
fields





1

2

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

$(‘#myTextField‘).textinput();

3.Buttons





1

2

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

$(‘#myNewButton‘).button();

4.Combobox
or select dropdowns





1

2

3

4

5

6

7

8

9

10

<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





1

2

3

4

5

6

7

<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





1

2

3

4

5

6

<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





1

2

3

4

5

6

7

8

9

10

11

<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





1

2

3

4

5

6

7

8

9

10

11

12

13

<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





1

2

3

4

5

6

7

8

9

<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‘);

jquerymobile动态添的无索刷新

时间: 2024-11-06 09:36:08

jquerymobile动态添的无索刷新的相关文章

jquerymobile动态添加元素之后

Jquerymobile动态添加元素之后有些不能被正确渲染的解决方法:listview:               添加 jq(".detail").listview("refresh");div或其他:         添加.trigger( "create" ); jq(".detail:eq("+ix+1+")").append("<li>"+data.linete[

动态IP或无公网IP时外网訪问内网ORACLE数据库

ORACLE数据库是应用最多的一个数据库.一般项目应用.将ORACLE部署在内网,内网调用,及运维都仅仅能是内网完毕. 假设ORACLE主机或所在局域网没有固定公网IP,又想在外网对ORACLE进行訪问.就须要解决动态IP或无公网IP的问题.相应运用到动态域名解析和port映射技术应用. 可直接採用网络辅助来实现外网对内网ORACLE数据库的訪问.如NAT123动态域名解析port映射. 动态IP时,外网訪问内网ORACLE数据库的实现: 1.在内网启用NAT123动态域名解析.使用自己的域名.

ArcEngine 图层无闪烁刷新

使用AE的同行经常会遇到这样的问题,图层刷新.目前常用的有以下几种方法: 1.完全刷新 MapControl.Refresh(); 2.局部刷新 MapControl.Refresh(esriViewDrawPhase.esriViewAll,layerOrElement,envelope) 或者其他的如: IActiveView activeView = MapControl.Map as IActiveView; activeView.PartialRefresh(ESRI.ArcGIS.C

&lt;转&gt;jquerymobile动态添加元素之后有些不能被正确渲染的解决方法

jquerymobile动态添加元素之后有些不能被正确渲染的解决方法:listview: 添加 jq(".detail").listview("refresh");div或其他: 添加.trigger( "create" );jq(".detail:eq("+ix+1+")").append("<li>"+data.linete[i].S_Station+data.linet

自己家用电脑做站点server,解决动态IP、无公网IP、80port被封、HTTP被屏蔽

动态IP.无公网IP.80port被封.HTTP被屏蔽,这些问题都是自己的server做站点服务,easy遇到面对的问题.当出现这些问题时.能够利用当前的开放网络资源一一解决. 解决原理分析: 动态IP. 公网IP是动态变化的,利用动态域名解析,固定域名. 无公网IP.利用80port映射软件辅助,将内网站点应用映射到外网域名. 80port被封.相同可利用80port映射解决. HTTP被屏蔽.须要将WEB站点数据转换成非HTTP数据,或先加密,再公布站点应用. 以开放的NAT123网络辅助软

jquerymobile知识点:动态Grid的绑定以及刷新

下面jquerymobile是ajax动态绑定和刷新的例子.直接上图以及代码. 下面是实例代码: //初始绑定 function GetInitBind(PageIndex, PageSize, sqlwhere, OrderType) { showLoading(); var adapGrid = $("#adapGrid"); $.ajax({ type: "POST", url: "/Ashx/YouHui.ashx?MethodName=GetSe

form表单提交无页面刷新(非js)

先看一段代码(PHP例子) 1.表单代码(form.php): <?php header("Content-type: text/html; charset=utf8"); ?> <iframe name="testIframeName" style="display:none;"></iframe> <form target="testIframeName" method="

动态script标签同步加载 ps:无打包编译,静态实现静态资源入口动态配置,无编译打包静态资源添加版本号

/**功能:创建动态标签加载css ,js文件,重点是js文件,利用onloading加递归实现动态标签的同步加载用法:在html文件body底部script内部声明并调用下列函数,obj中写要加载的文件信息注意,由于css是后来加载的,所以页面会存在无样式的页面骨架闪烁问题,可以在头部head标签里加个body{opacity:0},在css文件中再改为body{opacity:1} */ function noAsyncScriptTag() { var obj = { pubPath: "

MySQL动态添删改列字段

动态增加列字段: alter table TableName add column field_id varchar(1024); 动态删除列字段: alter table TableName drop column field_id; 动态修改列字段: alter table TableName chande old_field_name new_field_name field_type; 动态修改表结构: alter table table_name modify column field