UNPKG

selectize

Version:

Selectize is a jQuery-based custom <select> UI control. Useful for tagging, contact lists, country selectors, etc.

154 lines (153 loc) 4.67 kB
<!DOCTYPE html> <!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7"><![endif]--> <!--[if IE 7]><html class="no-js lt-ie9 lt-ie8"><![endif]--> <!--[if IE 8]><html class="no-js lt-ie9"><![endif]--> <!--[if gt IE 8]><!--><html class="no-js"><!--<![endif]--> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Selectize.js Demo</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"> <link rel="stylesheet" href="css/normalize.css"> <link rel="stylesheet" href="css/stylesheet.css"> <!--[if IE 8]><script src="js/es5.js"></script><![endif]--> <script src="js/jquery.min.js"></script> <script src="../dist/js/standalone/selectize.js"></script> <script src="js/index.js"></script> <style type="text/css"> .selectize-control.repositories .selectize-dropdown > div { border-bottom: 1px solid rgba(0,0,0,0.05); } .selectize-control.repositories .selectize-dropdown .by { font-size: 11px; opacity: 0.8; } .selectize-control.repositories .selectize-dropdown .by::before { content: 'by '; } .selectize-control.repositories .selectize-dropdown .name { font-weight: bold; margin-right: 5px; } .selectize-control.repositories .selectize-dropdown .title { display: block; } .selectize-control.repositories .selectize-dropdown .description { font-size: 12px; display: block; color: #a0a0a0; white-space: nowrap; width: 100%; text-overflow: ellipsis; overflow: hidden; } .selectize-control.repositories .selectize-dropdown .meta { list-style: none; margin: 0; padding: 0; font-size: 10px; } .selectize-control.repositories .selectize-dropdown .meta li { margin: 0; padding: 0; display: inline; margin-right: 10px; } .selectize-control.repositories .selectize-dropdown .meta li span { font-weight: bold; } .selectize-control.repositories::before { -moz-transition: opacity 0.2s; -webkit-transition: opacity 0.2s; transition: opacity 0.2s; content: ' '; z-index: 2; position: absolute; display: block; top: 12px; right: 34px; width: 16px; height: 16px; background: url(images/spinner.gif); background-size: 16px 16px; opacity: 0; } .selectize-control.repositories.loading::before { opacity: 0.4; } .icon { width: 16px; height: 16px; display: inline-block; vertical-align: middle; background-size: 16px 16px; margin: 0 3px 0 0; } .icon.fork { background-image: url(images/repo-fork.png); } .icon.source { background-image: url(images/repo-source.png); } </style> </head> <body> <div id="wrapper"> <h1>Selectize.js</h1> <div class="demo"> <h2>Loading + Custom Scoring</h2> <p>This demo shows how to integrate third-party data and override the scoring method.</p> <div class="control-group"> <label for="select-repo">Repository:</label> <select id="select-repo" class="repositories" placeholder="Pick a repository..."></select> </div> <script> // <select id="select-repo"></select> $('#select-repo').selectize({ valueField: 'url', labelField: 'name', searchField: 'name', options: [], create: false, render: { option: function(item, escape) { return '<div>' + '<span class="title">' + '<span class="name"><i class="icon ' + (item.fork ? 'fork' : 'source') + '"></i>' + escape(item.name) + '</span>' + '<span class="by">' + escape(item.username) + '</span>' + '</span>' + '<span class="description">' + escape(item.description) + '</span>' + '<ul class="meta">' + (item.language ? '<li class="language">' + escape(item.language) + '</li>' : '') + '<li class="watchers"><span>' + escape(item.watchers) + '</span> watchers</li>' + '<li class="forks"><span>' + escape(item.forks) + '</span> forks</li>' + '</ul>' + '</div>'; } }, score: function(search) { var score = this.getScoreFunction(search); return function(item) { return score(item) * (1 + Math.min(item.watchers / 100, 1)); }; }, load: function(query, callback) { if (!query.length) return callback(); $.ajax({ url: 'https://api.github.com/legacy/repos/search/' + encodeURIComponent(query), type: 'GET', error: function() { callback(); }, success: function(res) { callback(res.repositories.slice(0, 10)); } }); } }); </script> </div> </div> </body> </html>