交流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);
},
8 个回复
無語 (作者)
只是给不会的人,大神勿扰。勿喷。
8***@qq.com - 90后足球程序狗
ajax得时候 直接 async: false ajax同步请求就行了
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
我要在一个页面中嵌套使用多个indexlist 怎么弄? 循环遍历list并window.indexedList = new mui.IndexedList(list);后只有第一个能正常显示 其他的都不好使 要是不用他检索会失效所以我想把他重写一下 但没弄明白怎么回事?大神有招没
1***@qq.com
感谢楼主分享,获取数据后调用索引方法就能索引了。
2***@qq.com
那要是存储的用户id,怎么获取到啊,在mui.indexedlist.js中
Denty - i hv no story to tell
万分感谢,实操有效~~~~
9***@qq.com
怎样传参数进去呢?