Skip to content

Commit 0fb146a

Browse files
committed
update
1 parent 80099f1 commit 0fb146a

File tree

6 files changed

+152
-69
lines changed

6 files changed

+152
-69
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "selectpage",
3-
"version": "2.13.0",
3+
"version": "2.14.0",
44
"description": "A simple style and powerful selection jQuery plugin, including ajax remote data, autocomplete, pagination, tags, i18n, keyboard navigation functions",
55
"main": "selectpage.js",
66
"dependencies": {

selectpage.base.css

Lines changed: 35 additions & 12 deletions
Large diffs are not rendered by default.

selectpage.bootstrap3.css

Lines changed: 39 additions & 15 deletions
Large diffs are not rendered by default.

selectpage.css

Lines changed: 34 additions & 11 deletions
Large diffs are not rendered by default.

selectpage.js

Lines changed: 42 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* @summary SelectPage
33
* @desc Simple and powerful selection plugin
44
* @file selectpage.js
5-
* @version 2.12
5+
* @version 2.14
66
* @author TerryZeng
77
* @contact https://terryz.github.io/
88
* @license MIT License
@@ -37,6 +37,11 @@
3737
* @type boolean 默认值 true
3838
*/
3939
pagination: true,
40+
/**
41+
* 是否显示下拉按钮
42+
* @type boolean 默认 true
43+
*/
44+
dropButton: true,
4045
/**
4146
* @desc 关闭分页的状态下,列表显示的项目个数,其它的项目以滚动条滚动方式展现
4247
* @type number 默认值 10
@@ -116,11 +121,6 @@
116121
* @return string
117122
*/
118123
formatItem : undefined,
119-
/**
120-
* 是否在输入框获得焦点时,展开下拉窗口
121-
* @type boolean 默认值true
122-
*/
123-
focusDropList : true,
124124
/**
125125
* 是否自动选择列表中的第一项内容(输入关键字查询模式,直接使用鼠标下拉并不触发)
126126
* @type boolean 默认值false
@@ -216,7 +216,7 @@
216216
/**
217217
* Plugin version number
218218
*/
219-
SelectPage.version = '2.12';
219+
SelectPage.version = '2.14';
220220
/**
221221
* Plugin object cache key
222222
*/
@@ -227,7 +227,7 @@
227227
*/
228228
SelectPage.prototype.setOption = function(option) {
229229
//若没有设置搜索字段,则使用显示字段作为搜索字段
230-
option.searchField = (option.searchField === undefined) ? option.showField: option.searchField;
230+
option.searchField = option.searchField || option.showField;
231231

232232
//统一大写
233233
option.andOr = option.andOr.toUpperCase();
@@ -240,7 +240,7 @@
240240
}
241241

242242
//设置排序字段
243-
option.orderBy = (option.orderBy === undefined) ? option.searchField: option.orderBy;
243+
option.orderBy = option.orderBy|| option.searchField;
244244

245245
//设置多字段排序
246246
//例: [ ['id', 'ASC'], ['name', 'DESC'] ]
@@ -494,7 +494,8 @@
494494
btn_on: 'sp_btn_on',
495495
btn_out: 'sp_btn_out',
496496
input: 'sp_input',
497-
clear_btn : 'sp_clear_btn'
497+
clear_btn : 'sp_clear_btn',
498+
align_right : 'sp_align_right'
498499
};
499500
this.css_class = css_class;
500501
};
@@ -526,7 +527,7 @@
526527
};
527528
this.template = {
528529
tag : {
529-
content : '<li class="selected_tag" itemvalue="#item_value#">#item_text#<span class="tag_close">×</span></li>',
530+
content : '<li class="selected_tag" itemvalue="#item_value#">#item_text#<span class="tag_close"><i class="iconfont if-close"></i></span></li>',
530531
textKey : '#item_text#',
531532
valueKey : '#item_value#'
532533
}
@@ -558,7 +559,8 @@
558559
//bootstrap风格的向下三角箭头
559560
elem.dropdown = $('<span class="bs-caret"><span class="caret"></span></span>');
560561
//单选模式下清除的按钮X
561-
elem.clear_btn = $('<div>').append('×').addClass(css.clear_btn).attr('title','清除内容');
562+
elem.clear_btn = $('<div>').html($('<i>').addClass('iconfont if-close')).addClass(css.clear_btn).attr('title','清除内容');
563+
if(!p.dropButton) elem.clear_btn.addClass(css.align_right);
562564

563565
//多选模式下带标签显示及文本输入的组合框
564566
elem.element_box = $('<ul>').addClass(css.element_box);
@@ -575,8 +577,8 @@
575577
*/
576578
var namePrefix = '_text',
577579
//将keyField的值放入"input:hidden"
578-
input_id = (elem.combo_input.attr('id') !== undefined) ? elem.combo_input.attr('id') : elem.combo_input.attr('name'),
579-
input_name = (elem.combo_input.attr('name') !== undefined) ? elem.combo_input.attr('name') : 'selectPage',
580+
input_id = elem.combo_input.attr('id') || elem.combo_input.attr('name'),
581+
input_name = elem.combo_input.attr('name') || 'selectPage',
580582
hidden_name = input_name,
581583
hidden_id = input_id;
582584

@@ -591,9 +593,12 @@
591593
});
592594

593595
// 2. DOM element put
594-
elem.container.append(elem.button).append(elem.hidden);
596+
elem.container.append(elem.hidden);
597+
if(p.dropButton){
598+
elem.container.append(elem.button)
599+
elem.button.append(elem.dropdown);
600+
}
595601
$(document.body).append(elem.result_area);
596-
elem.button.append(elem.dropdown);
597602
elem.result_area.append(elem.results);
598603
if(p.pagination) elem.result_area.append(elem.navi);
599604

@@ -637,7 +642,8 @@
637642
}
638643
*/
639644
//this.elem.button.attr('title', this.message.get_all_btn);
640-
this.elem.button.attr('title', this.message.close_btn);
645+
if(this.option.dropButton)
646+
this.elem.button.attr('title', this.message.close_btn);
641647
};
642648

643649
/**
@@ -742,12 +748,14 @@
742748
*/
743749
SelectPage.prototype.eDropdownButton = function() {
744750
var self = this;
745-
self.elem.button.mouseup(function(ev) {
746-
ev.stopPropagation();
747-
if (self.elem.result_area.is(':hidden') && !self.elem.combo_input.prop('disabled')) {
748-
self.elem.combo_input.focus();
749-
} else self.hideResults(self);
750-
}).mouseout();
751+
if(self.option.dropButton){
752+
self.elem.button.mouseup(function(ev) {
753+
ev.stopPropagation();
754+
if (self.elem.result_area.is(':hidden') && !self.elem.combo_input.prop('disabled')) {
755+
self.elem.combo_input.focus();
756+
} else self.hideResults(self);
757+
});
758+
}
751759
};
752760

753761
/**
@@ -825,10 +833,9 @@
825833
};
826834

827835
//Out of plugin area
828-
$(document).off('mousedown.selectPage').on('mousedown.selectPage',function(e) {
836+
$(document.body).off('mousedown.selectPage').on('mousedown.selectPage',function(e) {
829837
var ele = e.target || e.srcElement;
830838
var sp = $(ele).closest('div.' + css.container);
831-
832839
//Open status result list
833840
$('div.' + css.container + '.' + css.container_open).each(function(){
834841
if(this == sp[0]) return;
@@ -1172,7 +1179,7 @@
11721179

11731180
self.abortAjax(self);
11741181
//self.setLoading(self);
1175-
var which_page_num = self.prop.current_page > 0 ? self.prop.current_page : 1;
1182+
var which_page_num = self.prop.current_page || 1;
11761183

11771184
// 数据查询
11781185
if (typeof self.option.data == 'object') self.searchForJson(self, q_word, which_page_num);
@@ -1228,9 +1235,15 @@
12281235
self.ajaxErrorNotify(self, errorThrown);
12291236
return;
12301237
}
1231-
var data = p.eAjaxSuccess(returnData), json = {};
1232-
json.originalResult = data.list;
1233-
json.cnt_whole = data.totalRow;
1238+
var data = {}, json = {};
1239+
try{
1240+
data = p.eAjaxSuccess(returnData);
1241+
json.originalResult = data.list;
1242+
json.cnt_whole = data.totalRow;
1243+
}catch(e){
1244+
self.showMessage(self, self.message.ajax_error);
1245+
return;
1246+
}
12341247

12351248
json.candidate = [];
12361249
json.keyField = [];

selectpage.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)