無語
無語
  • 发布:2016-03-28 10:47
  • 更新:2019-10-16 11:51
  • 阅读:4061

【分享】动态索引列表实现【搜索有效的方法】

分类:MUI

交流Q群:453093824(人少,但是都帮助新人回答小白问题)。搜索无效的原因是因为 索引列表的js实现早于我们的ajax的方法。没有把数据加到索引列表的js ,导致索引列表源码js读不到后来的数据,所以不能搜索,【不知道我这么说大家能不能听懂。因为我看到有人问这个 才来说一下 笨方法,希望大家不喷我就好】
接下来步入正题,大家打开mui.indexedlist.js这个源码js,我们只需要把我们的ajax添加数据加入到源码js初始化之前,(让js在初始化的时候加载到数据即可)。
把我下面的数据复制到mui.indexedlist.js源码里面,找准位置,我首尾都多给了源码,大家应该可以找准位置,复制进去之后,就可以了。很简单,看了之后都能懂。

var IndexedList = $.IndexedList = $.Class.extend({  
		/**  
		 * 通过 element 和 options 构造 IndexedList 实例  
		 **/  
		init: function(holder, options) {  
			var self = this;  
			mui.ajax('', {//这个是数据导入的ajax  填入url  即可  
					data: {},  
					dataType: 'json', //服务器返回json格式数据  
					type: 'post', //HTTP请求类型  
					timeout: 10000, //超时时间设置为10秒;  
					success: function(data) {  
						var table = document.body.querySelector('.mui-table-view');  
						for (var i = 0; i < data.length; i++) {  
							//插入数据  
						}  
						self.init1(holder, options);  
					},  
					error: function(xhr, type, errorThrown) {  
						console.log(type);  
					}  
				});  
		},  
		init1: function(holder, options) {  
			var self = this;  
			self.options = options || {};  
			self.box = holder;  
			if (!self.box) {  
				throw "实例 IndexedList 时需要指定 element";  
			}  
			self.createDom();  
			self.findElements();  
			self.caleLayout();  
			self.bindEvent();  
		},  
               createDom: function() {  
			var self = this;  
			self.el = self.el || {};  
			//styleForSearch 用于搜索,此方式能在数据较多时获取很好的性能  
			self.el.styleForSearch = document.createElement('style');  
			(document.head || document.body).appendChild(self.el.styleForSearch);  
		},
2016-03-28 10:47 负责人:无 分享
已邀请:
無語

無語 (作者) - mui交流Q群:453093824

只是给不会的人,大神勿扰。勿喷。

8***@qq.com

8***@qq.com - 90后足球程序狗

ajax得时候 直接 async: false ajax同步请求就行了

4***@qq.com

4***@qq.com - 风行

我按照你这个 添加 了 但数据没出来

  • 無語 (作者)

    具体说一下。 我这个好多人都好用了。 你是不是哪个地方写错了? 把你代码贴出来看看


    2016-05-06 13:41

  • 4***@qq.com

    谢谢啊 我解决了


    2016-05-16 17:10

  • 小小小小宇

    回复 4***@qq.com:你能把代码贴一下吗?我看看如何添加。。谢谢 我这不知道如何插入数据了


    2016-09-20 09:08

  • l***@163.com

    回复 4***@qq.com:请问如何解决呢


    2017-06-16 17:37

1***@qq.com

1***@qq.com

我要在一个页面中嵌套使用多个indexlist 怎么弄? 循环遍历list并window.indexedList = new mui.IndexedList(list);后只有第一个能正常显示 其他的都不好使 要是不用他检索会失效所以我想把他重写一下 但没弄明白怎么回事?大神有招没

1***@qq.com

1***@qq.com

感谢楼主分享,获取数据后调用索引方法就能索引了。

2***@qq.com

2***@qq.com

那要是存储的用户id,怎么获取到啊,在mui.indexedlist.js中

Denty

Denty - i hv no story to tell

万分感谢,实操有效~~~~

9***@qq.com

9***@qq.com

怎样传参数进去呢?

该问题目前已经被锁定, 无法添加新回复