智能提示插件如何编写
constructor(inputElement, options) {
thisput = inputElement;
this.suggestions = [];
this.container = document.createElement('div');
this.container.className = 'suggest-container';
// 初始化配置
this.minChars = options.minChars || 2;
this.maxItems = options.maxItems || 5;
// 绑定
thisput.addEventListener('input', this.handleInput.bind(this));
handleInput {
const value = thisput.value.trim;
if(value.length >= this.minChars) {
this.fetchSuggestions(value);
} else {
this.hideSuggestions;
fetchSuggestions(query) {
// 这里应该是API调用或本地数据处理
// 示例使用静态数据
const mockData = ['apple', 'application', 'appreciate', 'banana', 'orange'];
this.suggestions = mockData.filter(item =>
item.startsWith(query.toLowerCase)
).slice(0, this.maxItems);
this.showSuggestions;
showSuggestions {
// 清空并重建建议列表
this.containernerHTML = '';
this.suggestions.forEach(item => {
const div = document.createElement('div');
div.textContent = item;
this.container.appendChild(div);
});
// 定位到输入框下方
const rect = thisput.getBoundingClientRect;
this.container.style.top = `${rect.bottom}px`;
this.container.style.left = `${rect.left}px`;
document.body.appendChild(this.container);
hideSuggestions {
if(document.body.contains(this.container)) {
document.body.removeChild(this.container);