Skip to content

Commit

Permalink
updated 选中时传入当前选中项数据
Browse files Browse the repository at this point in the history
  • Loading branch information
mumuy committed Aug 7, 2020
1 parent ce6e9ec commit 317364e
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 21 deletions.
46 changes: 29 additions & 17 deletions code/jquery.suggestion.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,9 @@
var $window = $(window);
var $document = $(document);
return this.each(function() {
//对象定义
// 对象定义
var _api = {};
var that = this;
var _ = this;
var $this = $(this);
var $form = $this.parents('form')||$this.parent();
var $box = $this.parent();
Expand All @@ -73,7 +73,7 @@
var _index = -1;
var isShow = false;
var hasData = false;
//节点样式
// 节点样式
$form.css({
'position':'relative'
});
Expand All @@ -87,8 +87,8 @@
'position':'absolute',
'display':'none'
});
//方法定义
//位置调整
// 方法定义
// 位置调整
var reset = function(){
_height = $this.outerHeight(false);
_width = $this.outerWidth(false);
Expand All @@ -100,15 +100,19 @@
'width':_width+'px'
});
};
//按键按下
// 按键按下
var down = function(e){
e.isPropagationStopped();
switch(e.keyCode){
case 13:
_api.hide();
if(_index>=0){
var $target = $items.eq(_index);
if(options.onSelect()!=false){
var data = {
'name':$target.data('name'),
'value':$target.data('value'),
};
if(options.onSelect(data)!=false){
$this.val($target.data('value'));
}
}
Expand Down Expand Up @@ -142,27 +146,31 @@
break;
}
};
//鼠标经过
// 鼠标经过
var hover = function(e){
e.isPropagationStopped();
var $target = $(this);
_index = $target.index();
$target.addClass(options.activeCls).siblings().removeClass(options.activeCls);
};
//选中表单项
// 选中表单项
var change = function(){
var $target = $list.find('li.'+options.activeCls);
if(options.onChange()!=false){
var data = {
'name':$target.data('name'),
'value':$target.data('value'),
};
if(options.onChange(data)!=false){
$this.val($target.data('value'));
}
};
//成功后的回调函数
// 成功后的回调函数
var success = function(data){
var list = options.onCallback(data);
if(list&&list.length){
$list.empty();
list.forEach(function(item){
$list.append('<li data-value="'+item['value']+'">'+item['name']+'</li>');
$list.append('<li data-value="'+item['value']+'" data-name="'+item['name']+'">'+item['name']+'</li>');
});
}
$items = $suggestion.find('li');
Expand All @@ -174,7 +182,7 @@
}
};
/* 公有方法 */
//显示表单项
// 显示表单项
_api.show = function(){
_hander&&clearTimeout(_hander);
_hander = setTimeout(function(){
Expand Down Expand Up @@ -211,7 +219,7 @@
isShow = true;
},500);
};
//隐藏表单项
// 隐藏表单项
_api.hide = function(){
_hander&&clearTimeout(_hander);
_hander = setTimeout(function(){
Expand All @@ -221,21 +229,25 @@
}
},200);
};
//事件绑定
// 事件绑定
$this.on('keydown',down);
$this.on('input propertychange focus',_api.show);
$this.on('blur',_api.hide);
$list.on('click','li',function(){
var $target = $(this);
if(options.onSelect()!=false){
var data = {
'name':$target.data('name'),
'value':$target.data('value'),
};
if(options.onSelect(data)!=false){
$this.val($target.data('value'));
}
if(options.autoSubmit){
$form.submit();
}
}).on('mouseenter','li',hover);
$window.resize(reset);
//初始化
// 初始化
reset();
getApi(_api);
});
Expand Down
8 changes: 4 additions & 4 deletions jquery-suggestion/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -185,14 +185,14 @@ <h2>options参数</h2>
<td>data表示请求到的数据,返回[{'name':'','value':''},...]表示搜索列表项,其中name用于显示,value表示有效值</td>
</tr>
<tr>
<td>onChange()</td>
<td>onChange(data)</td>
<td>[无]</td>
<td>用户按键盘切换时触发,返回false不自动填入值</td>
<td>用户按键盘切换时触发,data表示当前选中项的数据,返回false不自动填入值;</td>
</tr>
<tr>
<td>onSelect()</td>
<td>onSelect(data)</td>
<td>[无]</td>
<td>选中搜索建议列表项时触发,返回false不自动填入值</td>
<td>选中搜索建议列表项时触发,data表示当前选中项的数据,返回false不自动填入值;</td>
</tr>
</tbody>
</table>
Expand Down

0 comments on commit 317364e

Please sign in to comment.