DropdownDropdown是面向PC端的基于jQuery開發的輕量級下拉框插件,支持key/value搜索,有token和select兩種模式。 Version1.1.1
SupportInternet Explorer 8+ Chrome for PC Safari for PC Firefox for PC
BasedjQuery 1.4+ Log a) 多選 select模式下增加一個 全部刪除 按鈕 b) 新增 changeStatus 方法,提供readonly,disabled功能 c) 新增 destroy,bindEvent,unbindEvent 方法 FeaturePrinciple程序設計原理如下圖所示:
在一些前端渲染的場景,JSON數據是通過AJAX請求的,如果再拼成<option value="yyy">xxx</option> 就有點多余了。 在這種情況下,建議直接將JSON數據轉為以下這種格式:
- [
- {
- "id": 1, // value值
- "disabled": false, // 是否禁選
- "groupName": "分組名",
- "groupId": 3,//分組ID
- "selected": false, // 是否選中
- "name": "Betty Deborah Jackson" // 名稱
- },
- {
- "id": 2,
- "disabled": false,
- "groupName": "分組名",
- "groupId": 2,
- "selected": false,
- "name": "Jason Barbara Clark"
- }
- // more ...
- ]
復制代碼 Dropdown 會根據這個JSON來渲染 select > option
Options 名稱 | 描述 | 類型 | 默認 | readOnly | 是否只讀 | Boolean | false | limitCount | 選擇上限 | Number | Infinity | input | 搜索框模板 | HTML | <input type="text" maxLength="20" placeholder="搜索關鍵詞或ID"> | data | 數據源 | Array | [] | searchable | 是否可開啟搜索 | Boolean | true | searchNoData | 無數據模板 | HTML | <li style="color:#ddd">查無數據,換個詞兒試試 /(ㄒoㄒ)/~~</li> | choice | 選擇后回調函數 | Function | function(){} |
MethodschangeStatus(status)
參數 | 類型 | 描述 | status | String | 支持readonly或disabled,不傳則取消readonly/disabled | return | undefined | |
- var dropdown = $('selector').dropdown(options).data('dropdown');
- dropdown.changeStatus('readonly') // readonly
- dropdown.changeStatus('disabled') // disabled
- dropdown.changeStatus() // cancel
復制代碼
destroy()
參數 | 類型 | 描述 | status | String | 支持readonly或disabled,不傳則取消readonly/disabled | return | undefined | |
- var dropdown = $('selector').dropdown(options).data('dropdown');
- dropdown.destroy();
復制代碼
Usage引入 - <script src="http://cdn.bootcss.com/jquery/1.8.1/jquery.js"></script>
- <link rel="stylesheet" type="text/css" href="./jquery.dropdown.css">
- <script src="./jquery.dropdown.js"></script>
復制代碼HTML 部分 - <div class="dropdown-mul-1">
- <!-- PS: select標簽需手動設置隱藏 -->
- <select style="display:none" name="" id="" multiple placeholder="請選擇">
- <option value="1">1</option>
- <option value="2">2</option>
- <option value="3">3</option>
- <option value="4">4</option>
- <option value="5">5</option>
- <option value="6">6</option>
- <option value="7">7</option>
- <option value="8">8</option>
- <option value="9">9</option>
- <option value="10">10</option>
- <option value="11">11</option>
- <option value="12">12</option>
- </select>
- </div>
復制代碼
JavaScript 部分 - $('.dropdown-mul-1').dropdown({
- limitCount: 40,
- multipleMode: 'label',
- choice: function () {
- console.log(arguments,this);
- }
- });
復制代碼
|