textsms
<div class="row">
<div class="col s12">
<div class="row">
<div class="input-field col s12">
<i class="material-icons prefix">textsms</i>
<input type="text" id="autocomplete-input" class="autocomplete">
<label for="autocomplete-input">自动完成</label>
</div>
</div>
</div>
</div>
初始化
数据是一个json对象,其中键是匹配的字符串,值是可选的图像url。
document.addEventListener('DOMContentLoaded', function() {
var elems = document.querySelectorAll('.autocomplete');
var instances = M.Autocomplete.init(elems, options);
});
// 或用JQuery
$(document).ready(function(){
$('input.autocomplete').autocomplete({
data: {
"Apple": null,
"Microsoft": null,
"Google": 'https://placehold.it/250x250'
},
});
});
选项
名称 | 类型 | 默认 | 描述 |
---|---|---|---|
data | Object | {} | 定义具有可选图标字符串的自动完成选项的数据对象。 |
limit | Number | Infinity | 自动完成显示的结果限制数量。 |
onAutocomplete | Function | null | 自动完成时的回调。 |
minLength | Number | 1 | 自动完成开始前的最小字符数。 |
sortFunction | Function | 排序函数,用于定义自动完成选项列表的顺序。 |
sortFunction
这是默认的compareFunction。您可以通过传递具有这3个参数的函数来编写自己的compareFunction。您可以在 这里阅读更多关于compareFunction如何工作的信息。
// 用于对自动完成结果进行排序的排序功能
function (a, b, inputString) {
return a.indexOf(inputString) - b.indexOf(inputString);
}
要禁用排序并使用数据对象中显示的值,请使用一个虚假的值。
方法
因为jQuery不再是一个依赖项,所以所有的方法都是在插件实例上调用的。你可以获得插件实例如下:
var instance = M.Autocomplete.getInstance(elem); /* JQuery方法调用 您仍然可以使用旧的jQuery插件方法调用。 但您将无法访问实例属性。 $('.autocomplete').autocomplete('methodName'); $('.autocomplete').autocomplete('methodName', paramName); */
.open();
打开自动完成下拉选项
instance.open();
.close();
关闭自动完成下拉列表
instance.close();
.selectOption();
选择特定的自动完成选项。
参数
Element: 自动完成选项的元素。
instance.selectOption(el);
.updateData();
更新自动完成选项数据。
参数
Object: 自动完成选项数据对象。
instance.updateData({
"Apple": null,
"Microsoft": null,
"Google": 'https://placehold.it/250x250'
});
.destroy();
销毁插件实例并回收
instance.destroy();
属性
名称 | 类型 | 描述 |
---|---|---|
el | Element | 插件初始化时使用的DOM元素。 |
options | Object | 初始化实例时使用的选项。 |
isOpen | Boolean | 自动完成是否打开 |
count | Number | 匹配到的自动完成项数量 |
activeIndex | Integer | 当前选择项的索引 |
dropdown | Dropdown | 此自动完成的下拉列表插件的实例。 |