Zelect创建 select 元素的 jQuery 插件

联合创作 · 2023-10-02 17:10

Zelect 是一个能够创建自定义 <select> 元素的 jQuery 插件。

特征:

  • 轻量

  • 没有 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.")
}
浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报