sumoselect是一个jQuery选择替换插件,它将原生选择框变成一个响应灵敏、动画化、完全可自定义的下拉选择列表。
1.在网页中包含最新版本的jQuery库。
- <script src="/path/to/cdn/jquery.min.js"></script>
2.在jQuery库之后包含jQuery sumoselect插件的javascript和CSS。
- <script src="jquery.sumoselect.min.js"></script>
- <link href="sumoselect.css" rel="stylesheet" />
3.按照Html结构创建一个多选列表,如下所示。
- <select multiple="multiple" placeholder="Pick a brand" class="SlectBox">
- <option selected value="volvo">Volvo</option>
- <option value="ford">Ford</option>
- <option value="mercedes">Mercedes</option>
- <option value="audi">Audi</option>
- <option value="bmw">BMW</option>
- </select>
4.调用插件以启用下拉选择列表。
- $('.SlectBox').SumoSelect();
5.所有默认选项和回调。
- // Dont change it here.
- placeholder: 'Select Here',
- // display no. of items in multiselect. 0 to display all.
- csvDispCount: 3,
- // format of caption text. you can set your locale.
- captionFormat:'{0} Selected',
- // format of caption text when all elements are selected. set null to use captionFormat. It will not work if there are disabled elements in select.
- captionFormatAllSelected:'{0} all selected!',
- // Screen width of device at which the list is rendered in floating popup fashion.
- floatWidth: 400,
- // force the custom modal on all devices below floatWidth resolution.
- forceCustomRendering: false,
- nativeOnDevice: ['Android', 'BlackBerry', 'iPhone', 'iPad', 'iPod', 'Opera Mini', 'IEMobile', 'Silk'],
- // true to POST data as csv ( false for Html control array ie. deafault select )
- outputAsCSV: false,
- // seperation char in csv mode
- csvSepChar: ',',
- // display ok cancel buttons in desktop mode multiselect also.
- okCancelInMulti: false,
- // for okCancelInMulti=true. sets whether click outside will trigger Ok or Cancel (default is cancel).
- isClickAwayOk: false,
- // im multi select mode wether to trigger change event on individual selection or combined selection.
- triggerChangeCombined: true,
- // to display select all button in multiselect mode.|| also select all will not be available on mobile devices.
- selectAll: false,
- // Display a disabled checkbox in multiselect mode when all the items are not selected.
- selectAllPartialCheck: true,
- // to display input for filtering content. selectAlltext will be input text placeholder
- search: false,
- // placeholder for search input
- searchText: 'Search...',
- searchFn: function(haystack, needle) { // search function
- return haystack.toLowerCase().indexOf(needle.toLowerCase()) < 0;
- },
- noMatch: 'No matches for "{0}"',
- // some prefix usually the field name. eg. '<b>Hello</b>'
- prefix: '',
- // all text that is used. don't change the index.
- locale: ['OK', 'Cancel', 'Select All'],
- // set true to open upside.
- up: false,
- // set to false to prevent title (tooltip) from appearing
- showTitle: true,
- // im multi select - clear all checked options
- clearAll: false,
- // im multi select - close select after clear
- closeAfterClearAll: false,
- // Maximum number of options selected (when multiple)
- max: null,
- // Custom <li> item renderer
- renderLi: (li, _originalOption) => li
6.目前支持图标和自定义选项。
- $('.SlectBox').SumoSelect({
- renderLi: (li, originalOption) => {
- // Edit your li here
- return li;
- }
- });
7.API方法。
- var mySelect = $('.SlectBox').SumoSelect();
- // add a new item
- mySelect.add(value [,text][,index])
- // remove an item
- mySelect.remove(index)
- // select an item
- mySelect.selectItem(index/value)
- // unselect an item
- mySelect.unSelectItem(index/value)
- // disable an item
- mySelect.disableItem(index)
- // re-enable an item
- mySelect.enableItem(index)
- // select all items
- mySelect.selectAll()
- // unselect all items
- mySelect.unSelectAll()
- // enable the plugin
- mySelect.enable()
- // disable the plugin
- mySelect.disable()
- // reload the plugin
- mySelect.reload()
8.事件。
- $('.SlectBox').on('sumo:opened', function(sumo) {
- // Do stuff here
- });
- $('.SlectBox').on('sumo:opening', function(sumo) {
- // Do stuff here
- });
- $('.SlectBox').on('sumo:closed', function(sumo) {
- // Do stuff here
- });
- $('.SlectBox').on('sumo:closing', function(sumo) {
- // Do stuff here
- });
2023-01-25
2022-07-30
2022-04-16
2022-02-10
2022-02-10
2022-01-05
2022-01-05
2022-01-05
2021-10-31
2021-09-03
2021-08-11
2021-08-04
2021-07-13
2021-07-06
2021-07-05
2021-07-01
2021-06-28
2021-06-27
2021-06-21
2021-06-19
2021-06-18
2021-06-17
2018-02-28
2017-03-07
2017-03-06
2017-03-03
2017-03-02
2016-04-30
2016-04-08
2016-03-08
2016-03-05
2016-03-04
2016-03-03
2016-02-23
2015-04-29
2015-04-17
2015-04-09
2015-04-07
2015-04-02
2015-04-01
2015-03-31
2015-02-13
2014-08-02
2014-07-28