# jquery-selectable **Repository Path**: mirrors_claviska/jquery-selectable ## Basic Information - **Project Name**: jquery-selectable - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-08 - **Last Updated**: 2026-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jquery.selectable.js - Turn a collection of HTML elements into a selectable list Developed by Cory LaViska for A Beautiful Site, LLC Licensed under the MIT license: http://opensource.org/licenses/MIT ## Overview: This plugin provides a minimal, lightweight solution to turn a collection of HTML elements into a selectable list. Features: - Turn any collection of elements into a selectable list - Supports single and multiple selections - Flexible markup! Molds to your HTML and CSS. - Customizable class names - Customizable getter - Callbacks for click, double click, change - API to get, set, select all, select none, and disable selection - Compact! (About 230 lines) ## Installing Include the minified version of this plugin in your project or install via NPM: ``` npm install --save @claviska/jquery-selectable ``` ## Attaching the plugin Minimal example that attaches the plugin to a group of list items: ```html ``` ```javascript $('.my-list').selectable(); ``` This will let you select any `
  • ` inside of `.my-list` by clicking on it. When an item is selected, it will receive the `active` class by default. For flexibility, the plugin doesn't add styles to selected elements — this is left to your stylesheet. Example with all possible options: ```javascript $('.my-list').selectable({ // Options (default shown) getValue: function() { return $(this).attr('data-value'); }, items: 'li', multiple: false, disabledClass: 'disabled', selectedClass: 'selected', // Callbacks change: function(values, elements) { ... }, click: function(value, element, event) { ... } }); ``` ### Options - `getValue`: a getter function that returns the value of an element in your collection. By default, the plugin will use the `data-value` attribute. - `items`: a selector used to group items into the collection. Defaults to `li`. Try `a` to make a group of links selectable or `.my-class` to make all items with a specific class selectable. (The selector will only match children of the container that you instantiated the plugin on.) - `multiple`: whether or not multiple selections are allowed. Defaults to `false`. - `disabledClass`: a class to apply to each item when the control is disabled. Defaults to `disabled`. - `selectedClass`: a class to apply to each selected item. Defaults to `selected`. ### Callbacks All callbacks are called in the context of the respective container you instantiated the plugin on. For the `change` callback, two arguments are available. The first is an array of selected values and the second is an array containing the selected elements. For the `click` callback, three arguments are available. The first is the value of the target item, the second is the target element, and the third is the event. - `change`: runs when the selection changes, including when changes are made programmatically. - `click`: runs when an item is clicked. Returning false will prevent the selection from being toggled. **Using Anchors?** If your selectable targets are `` elements, the plugin will automatically prevent clicks from hijacking the page — there's no need to use your own `event.preventDefault()` on them. ### Methods Methods are called using this syntax: ```javascript $('.my-list').selectable('method', arg); ``` The following API methods are supported: - `change`: Triggers the change event (will only run if a change has actually been made). Useful when you need to trigger a change after working with items directly in the DOM. - `create` (default): initializes the plugin on the given container. - `destroy`: returns the control to its pre-initialized state. - `getElements`: returns a jQuery object containing all elements in the collection. Passing `true` as an argument will return only selected elements. Passing a string or an array will return all elements that have those values. - `selectAll`: selects all items in the collection. - `selectNone`: clears selection from all items in the collection. - `value`: when no argument is passed, this method returns an array of values of the current selection. When a string or array is passed as an argument, this method will set the selection to any item matching the specified values. ## Changelog - 2.0.0 - Fixed a bug where using the `click` callback would prevent selection from being toggled. - Removed the `doubleClick` callback. Users who need this are encouraged to attach their own listener and use the methods above to obtain the selected values and elements.