js动态添加元素之后jquery mobile不能正确渲染解决方法 和 JM checked全选反选
2015-07-14 16:13
1166 查看
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选项进行配置
关于jquery mobile checked全选反选的操作 与jquery的操作不同
jquery mobile列表远程数据的自动过滤 listviewbeforefilter
默认是查出全部
输入搜索姓名以后模糊查询
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选项进行配置
$(document).bind('mobileinit',function(){ $.mobile.page.prototype.options.keepNative = "select, input.foo, textarea.bar"; });
关于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>
默认是查出全部
输入搜索姓名以后模糊查询
相关文章推荐
- jQuery如何实现点击下拉菜单的隐藏和显示
- jquery插件之倒计时-团购秒杀
- jQuery的 dataTable 2
- jQuery的 dataTable
- jquery事件学习
- jQuery 学习笔记(三)——事件与应用
- jquery学习
- jQuery原型方法first,last,eq,slice源码分析
- jQuery UI 使用指南
- JQuery Div scrollTop ScrollHeight
- jQuery EasyUI 在datagrid上使用combotree 进行多选
- jQuery.extend 函数详解
- jQuery插件和JavaScript库
- 跨域请求jQuery的ajax jsonp使用常见问题解答
- 使用jQuery生成div元素闪烁效果
- jQuery简要dom操作
- Jquery多次绑定click事件
- jquery.validate.js【简单实用的表单验证框架】
- jquery获得当前html页面源码的方法
- Jquery ajaxsubmit 异步上传图片 无刷新