zoukankan      html  css  js  c++  java
  • [转]jQuery Mobile动态刷新页面样式

    本文转自:http://blog.csdn.net/zht666/article/details/8560765

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

     

    代码如下:

    1. <script>  
    2.     function myFunction() {  
    3.         var ul = document.getElementById("myul");  
    4.         var li1 = "<li data-role="fieldcontain">信息2</li>";  
    5.         var li2 = "<li data-role="fieldcontain">信息3</li>";  
    6.         ul.innerHTML += li1;  
    7.         ul.innerHTML += li2;  
    8.     }  
    9. </script>  
    10.   
    11. <!-- listview测试 -->  
    12.  <ul data-role="listview" data-inset="true" id="myul">  
    13.          <li data-role="list-divider">信息列表</li>  
    14.          <li data-role="fieldcontain">信息1</li>  
    15.  </ul>  
            <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并没有对于新添加的元素进行渲染。这种情况下就需要对元素的样式进行刷新。

    刷新代码如下:

    1. <script>  
    2.     function myFunction() {  
    3.         var ul = document.getElementById("myul");  
    4.         var li1 = "<li data-role="fieldcontain">信息2</li>";  
    5.         var li2 = "<li data-role="fieldcontain">信息3</li>";  
    6.         ul.innerHTML += li1;  
    7.         ul.innerHTML += li2;  
    8.           
    9.         //刷新jQuery Mobile样式  
    10.         $('#myul').listview('refresh');  
    11.     }  
    12. </script>  
            <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');
  • 相关阅读:
    vscode英文显示设置为中文语言
    vscode各插件使用-背景图-scss
    公众号关联小程序
    js点击遮罩空白区域关闭,点击遮罩内元素不关闭
    swiper使用-点击跳转指定页
    小程序内部引导关注公众号实现方法
    jq赋值input值为空
    sass中代码使用
    Sources”参数中指定了多次。“Sources”参数不支持重复项
    将已存在小程序项目添加云开发配置
  • 原文地址:https://www.cnblogs.com/freeliver54/p/3643683.html
Copyright © 2011-2022 走看看