Zelect 是一个能够创建自定义 <select> 元素的 jQuery 插件。
<select>
特征:
轻量
没有 CSS
可自定义
异步分页加载大型选项列表 (read: AJAX-ready-and-enabled)
再也个分离或隐藏的 DOM 节点初始化
编程方式可选且多变
Unit-tested
代码示例:
$('select').on('ready', function() { $('form').enable() }) $('select').on('change', function(evt, item) { $('form input.id-container').val(item.id) }) $('select').zelect({ throttle: 150, placeholder: $('<i>').text('Which one...'), loader: loader, renderItem: renderer, noResults: noResultser } function loader(term, page, callback) { $.get('/q', { q:term, p:page }).then(function(items) { var result = _(items).map(function(item) { return { text:item.content, img:item.imageUrl || 'default.png', id:item.uniqueId } } callback(result) } } function renderer(item, term) { return $('<div>') .append($('<img>').attr('src', item.img)) .append($('<span>').addClass('content').text(item.label)) } function noResultser(term) { return $('<span>').addClass('no-results').text(term + "didn't hit anything.") }