• js动态添加元素之后jquery mobile不能正确渲染解决方法 和 JM checked全选反选


    jquerymobile动态添加元素之后有些不能被正确渲染的解决方法:
    listview: 添加 jq(".detail").listview("refresh");
    div或其他:添加.trigger( "create" );

    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的元素会更新,原有的保持不变。

    不使用jqm样式:

    如果不希望jqm自动初始化你的元素,有两种方法。加入data-role="none"属性,或者在mobileinit事件中对keepNative选项进行配置

    1 $(document).bind('mobileinit',function(){  
    2     $.mobile.page.prototype.options.keepNative = "select, input.foo, textarea.bar";  
    3 }); 

    关于jquery mobile checked全选反选的操作   与jquery的操作不同

    $("[name=checkReason]:checkbox").filter(':checkbox').prop('checked', false).checkboxradio("refresh");

    jquery mobile列表远程数据的自动过滤 listviewbeforefilter

    <!DOCTYPE html>  
    <html>  
    <head>  
    	<title> Page Title</title>  
    	<meta name="viewport" content="width=device-width, initial-scale=1">  
    	<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" /> 
    	<script src="http://code.jquery.com/jquery-1.9.1.min.js"> </script> 
    	<script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"> </script> 
        <script> 
    		$( document ).on( "pageinit", "#myPage", function() {
    			$( "#autocomplete" ).on( "listviewbeforefilter", function ( e, data ) {
    				var $ul = $( this ),
    					$input = $( data.input ),
    					value = $input.val(),
    					html = "";
    				$ul.html( "" );
    				if ( value && value.length >  2 ) {
    					$ul.html( "<li> <div class='ui-loader'> <span class='ui-icon ui-icon-loading'> </span> </div> </li> " );
    					$ul.listview( "refresh" );
    					$.ajax({
    						url: "http://gd.geobytes.com/AutoCompleteCity",
    						dataType: "jsonp",
    						crossDomain: true,
    						data: {
    							q: $input.val()
    						}
    					})
    					.then( function ( response ) {
    						$.each( response, function ( i, val ) {
    							html += "<li> " + val + "</li> ";
    						});
    						$ul.html( html );
    						$ul.listview( "refresh" );
    						$ul.trigger( "updatelayout");
    					});
    				}
    			});
    		});
        </script> 
    	<style> 
    	html, body { padding: 0; margin: 0; }
    	html, .ui-mobile, .ui-mobile body {
        	height: 1035px;
    	}
    	.ui-mobile, .ui-mobile .ui-page {
        	min-height: 1035px;
    	}
    	.ui-content{
    		padding:10px 15px 0px 15px;
    	}
    	.ui-listview-filter-inset {
    			margin-top: 0;
    		}
    	</style> 
    </head>  
    <body>  
    <div data-role="page" id="myPage" style="max-height:1040px; min-height:1040px;"> 
    	<div data-role="content" >  
        	<div data-demo-html="true" data-demo-js="true" data-demo-css="true"> 
    			<ul id="autocomplete" data-role="listview" data-inset="true" data-filter="true" data-filter-placeholder="Find a city..." data-filter-theme="d"> </ul> 
    		</div> 
    	</div> 
    </div> 
    </body> 
    </html> 
    

    默认是查出全部输入搜索姓名以后模糊查询

     

  • 相关阅读:
    Windows Phone 在读取网络图片之前先显示默认图片
    ios开发 点击文本(TextField)输入的时候向上推以及输入之后恢复的动画
    51nod 1019 逆序数
    hdu 5455 Fang Fang
    51nod 1027 大数乘法
    51nod 1006 最长公共子序列Lcs
    51nod 1066 Bash游戏
    51nod 1069 Nim游戏
    51nod 1049 最大子段和
    51nod 1072 威佐夫游戏
  • 原文地址:https://www.cnblogs.com/cjqa/p/4645743.html
Copyright © 2020-2023  润新知