{"id":23156493,"url":"https://github.com/thecreation/jquery-selective","last_synced_at":"2025-12-12T05:02:02.397Z","repository":{"id":57282352,"uuid":"11754029","full_name":"thecreation/jquery-selective","owner":"thecreation","description":"A jquery plugin that used to tagging, selectors and so on.","archived":false,"fork":false,"pushed_at":"2016-11-14T12:21:46.000Z","size":401,"stargazers_count":7,"open_issues_count":4,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-12-11T02:27:44.717Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thecreation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-07-30T01:48:10.000Z","updated_at":"2020-03-23T00:35:17.000Z","dependencies_parsed_at":"2022-08-24T18:13:57.903Z","dependency_job_id":null,"html_url":"https://github.com/thecreation/jquery-selective","commit_stats":null,"previous_names":["amazingsurge/jquery-selective"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecreation%2Fjquery-selective","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecreation%2Fjquery-selective/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecreation%2Fjquery-selective/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecreation%2Fjquery-selective/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thecreation","download_url":"https://codeload.github.com/thecreation/jquery-selective/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230181485,"owners_count":18185938,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-17T21:13:49.191Z","updated_at":"2025-12-12T05:02:02.017Z","avatar_url":"https://github.com/thecreation.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [jQuery selective](https://github.com/amazingSurge/jquery-selective) ![bower][bower-image] [![NPM version][npm-image]][npm-url] [![Dependency Status][daviddm-image]][daviddm-url] [![prs-welcome]](#contributing)\n\n\u003e A jquery plugin that used to tagging, selectors and so on.\n\n## Table of contents\n- [Main files](#main-files)\n- [Quick start](#quick-start)\n- [Requirements](#requirements)\n- [Usage](#usage)\n- [Examples](#examples)\n- [Options](#options)\n- [Methods](#methods)\n- [Events](#events)\n- [No conflict](#no-conflict)\n- [Browser support](#browser-support)\n- [Contributing](#contributing)\n- [Development](#development)\n- [Changelog](#changelog)\n- [Copyright and license](#copyright-and-license)\n\n## Main files\n```\ndist/\n├── jquery-selective.js\n├── jquery-selective.es.js\n├── jquery-selective.min.js\n└── css/\n    ├── selective.css\n    └── selective.min.css\n```\n\n## Quick start\nSeveral quick start options are available:\n#### Download the latest build\n\n * [Development](https://raw.githubusercontent.com/amazingSurge/jquery-selective/master/dist/jquery-selective.js) - unminified\n * [Production](https://raw.githubusercontent.com/amazingSurge/jquery-selective/master/dist/jquery-selective.min.js) - minified\n\n#### Install From Bower\n```sh\nbower install jquery-selective --save\n```\n\n#### Install From Npm\n```sh\nnpm install jquery-selective --save\n```\n\n#### Install From Yarn\n```sh\nyarn add jquery-selective\n```\n\n#### Build From Source\nIf you want build from source:\n\n```sh\ngit clone git@github.com:amazingSurge/jquery-selective.git\ncd jquery-selective\nnpm install\nnpm install -g gulp-cli babel-cli\ngulp build\n```\n\nDone!\n\n## Requirements\n`jquery-selective` requires the latest version of [`jQuery`](https://jquery.com/download/) and [`jquery-mousewheel`](https://github.com/jquery/jquery-mousewheel) if we need mouse wheel support.\n\n## Usage\n#### Including files:\n\n```html\n\u003clink rel=\"stylesheet\" href=\"/path/to/selective.css\"\u003e\n\u003cscript src=\"/path/to/jquery.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"/path/to/jquery.mousewheel\"\u003e\u003c/script\u003e\n\u003cscript src=\"/path/to/jquery-selective.js\"\u003e\u003c/script\u003e\n```\n\n#### Required HTML structure\n\n```html\n\u003cdiv class=\"example\"\u003e\u003c/div\u003e\n```\n\n#### Initialization\nAll you need to do is call the plugin on the element:\n\n```javascript\njQuery(function($) {\n  $('.example').selective(); \n});\n```\n\n## Examples\nThere are some example usages that you can look at to get started. They can be found in the\n[examples folder](https://github.com/amazingSurge/jquery-selective/tree/master/examples).\n\n## Options\n`jquery-selective` can accept an options object to alter the way it behaves. You can see the default options by call `$.selective.setDefaults()`. The structure of an options object is as follows:\n\n```\n{\n  namespace: 'selective',\n  buildFromHtml: true,\n  closeOnSelect: false,\n  local: null,\n  selected: null,\n  withSearch: false,\n  searchType: null, //'change' or 'keyup'\n  ajax: {\n    work: false,\n    url: null,\n    quietMills: null,\n    loadMore: false,\n    pageSize: null\n  },\n  query: function() {}, //function(api, search_text, page) {},\n  tpl: {\n    frame: function() {\n      return `\u003cdiv class=\"${this.namespace}\"\u003e\u003cdiv class=\"${this.namespace}-trigger\"\u003e${this.options.tpl.triggerButton.call(this)}\u003cdiv class=\"${this.namespace}-trigger-dropdown\"\u003e\u003cdiv class=\"${this.namespace}-list-wrap\"\u003e${this.options.tpl.list.call(this)}\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e${this.options.tpl.items.call(this)}\u003c/div\u003e`;\n    },\n    search: function() {\n      return `\u003cinput class=\"${this.namespace}-search\" type=\"text\" placeholder=\"Search...\"\u003e`;\n    },\n    select: function() {\n      return `\u003cselect class=\"${this.namespace}-select\" name=\"${this.namespace}\" multiple=\"multiple\"\u003e\u003c/select\u003e`;\n    },\n    optionValue: function(data) {\n      if('name' in data) {\n        return data.name;\n      } else {\n        return data;\n      }\n    },\n    option: function(content) {\n      return `\u003coption value=\"${this.options.tpl.optionValue.call(this)}\"\u003e${content}\u003c/option\u003e`;\n    },\n    items: function() {\n      return `\u003cul class=\"${this.namespace}-items\"\u003e\u003c/ul\u003e`;\n    },\n    item: function(content) {\n      return `\u003cli class=\"${this.namespace}-item\"\u003e${content}${this.options.tpl.itemRemove.call(this)}\u003c/li\u003e`;\n    },\n    itemRemove: function() {\n      return `\u003cspan class=\"${this.namespace}-remove\"\u003ex\u003c/span\u003e`;\n    },\n    triggerButton: function() {\n      return `\u003cdiv class=\"${this.namespace}-trigger-button\"\u003eAdd\u003c/div\u003e`;\n    },\n    list: function() {\n      return `\u003cul class=\"${this.namespace}-list\"\u003e\u003c/ul\u003e`;\n    },\n    listItem: function(content) {\n      return `\u003cli class=\"${this.namespace}-list-item\"\u003e${content}\u003c/li\u003e`;\n    }\n  },\n\n  onBeforeShow: null,\n  onAfterShow: null,\n  onBeforeHide: null,\n  onAfterHide: null,\n  onBeforeSearch: null,\n  onAfterSearch: null,\n  onBeforeSelected: null,\n  onAfterSelected: null,\n  onBeforeUnselect: null,\n  onAfterUnselect: null,\n  onBeforeItemRemove: null,\n  onAfterItemRemove: null,\n  onBeforeItemAdd: null,\n  onAfterItemAdd: null\n}\n```\n\n## Methods\nMethods are called on selective instances through the selective method itself.\nYou can also save the instances to variable for further use.\n\n```javascript\n// call directly\n$().selective('destroy');\n\n// or\nvar api = $().data('selective');\napi.destroy();\n```\n\n#### enable()\nEnable the selective functions.\n```javascript\n$().selective('enable');\n```\n\n#### disable()\nDisable the selective functions.\n```javascript\n$().selective('disable');\n```\n\n#### destroy()\nDestroy the selective instance.\n```javascript\n$().selective('destroy');\n```\n\n## Events\n`jquery-selective` provides custom events for the plugin’s unique actions. \n\n```javascript\n$('.the-element').on('selective::ready', function (e) {\n  // on instance ready\n});\n\n```\n\nEvent   | Description\n------- | -----------\nready   | Fires when the instance is ready for API use.\nenable  | Fired when the `enable` instance method has been called.\ndisable | Fired when the `disable` instance method has been called.\ndestroy | Fires when an instance is destroyed. \n\n## No conflict\nIf you have to use other plugin with the same namespace, just call the `$.selective.noConflict` method to revert to it.\n\n```html\n\u003cscript src=\"other-plugin.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"jquery-selective.js\"\u003e\u003c/script\u003e\n\u003cscript\u003e\n  $.selective.noConflict();\n  // Code that uses other plugin's \"$().selective\" can follow here.\n\u003c/script\u003e\n```\n\n## Browser support\n\nTested on all major browsers.\n\n| \u003cimg src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/safari/safari_32x32.png\" alt=\"Safari\"\u003e | \u003cimg src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/chrome/chrome_32x32.png\" alt=\"Chrome\"\u003e | \u003cimg src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/firefox/firefox_32x32.png\" alt=\"Firefox\"\u003e | \u003cimg src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/edge/edge_32x32.png\" alt=\"Edge\"\u003e | \u003cimg src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/internet-explorer/internet-explorer_32x32.png\" alt=\"IE\"\u003e | \u003cimg src=\"https://raw.githubusercontent.com/alrra/browser-logos/master/opera/opera_32x32.png\" alt=\"Opera\"\u003e |\n|:--:|:--:|:--:|:--:|:--:|:--:|\n| Latest ✓ | Latest ✓ | Latest ✓ | Latest ✓ | 9-11 ✓ | Latest ✓ |\n\nAs a jQuery plugin, you also need to see the [jQuery Browser Support](http://jquery.com/browser-support/).\n\n## Contributing\nAnyone and everyone is welcome to contribute. Please take a moment to\nreview the [guidelines for contributing](CONTRIBUTING.md). Make sure you're using the latest version of `jquery-selective` before submitting an issue. There are several ways to help out:\n\n* [Bug reports](CONTRIBUTING.md#bug-reports)\n* [Feature requests](CONTRIBUTING.md#feature-requests)\n* [Pull requests](CONTRIBUTING.md#pull-requests)\n* Write test cases for open bug issues\n* Contribute to the documentation\n\n## Development\n`jquery-selective` is built modularly and uses Gulp as a build system to build its distributable files. To install the necessary dependencies for the build system, please run:\n\n```sh\nnpm install -g gulp\nnpm install -g babel-cli\nnpm install\n```\n\nThen you can generate new distributable files from the sources, using:\n```\ngulp build\n```\n\nMore gulp tasks can be found [here](CONTRIBUTING.md#available-tasks).\n\n## Changelog\nTo see the list of recent changes, see [Releases section](https://github.com/amazingSurge/jquery-selective/releases).\n\n## Copyright and license\nCopyright (C) 2016 amazingSurge.\n\nLicensed under [the LGPL license](LICENSE).\n\n[⬆ back to top](#table-of-contents)\n\n[bower-image]: https://img.shields.io/bower/v/jquery-selective.svg?style=flat\n[bower-link]: https://david-dm.org/amazingSurge/jquery-selective/dev-status.svg\n[npm-image]: https://badge.fury.io/js/jquery-selective.svg?style=flat\n[npm-url]: https://npmjs.org/package/jquery-selective\n[license]: https://img.shields.io/npm/l/jquery-selective.svg?style=flat\n[prs-welcome]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg\n[daviddm-image]: https://david-dm.org/amazingSurge/jquery-selective.svg?style=flat\n[daviddm-url]: https://david-dm.org/amazingSurge/jquery-selective","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecreation%2Fjquery-selective","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthecreation%2Fjquery-selective","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecreation%2Fjquery-selective/lists"}