(function($){
$.fn.autoMail = function(options){
var autoMail = $(this);
var _value = '';
var _index = -1;
var _width = autoMail.outerWidth();
var _height = autoMail.outerHeight();
_left = autoMail.offset().left; var _top = 자동메일 .offset().top;
autoMail.defaults = {
deValue : '请输入邮箱地址',
textCls : 'text-gray',
listCls : 'list -메일',
listTop : 1,
mailArr : ["qq.com","gmail.com","126.com","163.com","hotmail.com","yahoo.com","yahoo .com.cn","live.com","sohu.com","sina.com"]
}
//初始화
autoMail.init = function(){
autoMail. vars = $.extend({},autoMail.defaults,options);
autoMail.val(autoMail.vars.deValue).addClass(autoMail.vars.textCls)
autoMail.click(function(event) {
autoMail.select().removeClass(autoMail.vars.textCls);
if(autoMail.val() != autoMail.vars.deValue){
autoMail.add();
autoMail.order(_value);
autoMail.list.find('.item').each(function(){
if($(this).text() == autoMail.val()){ $(이것) .siblings('.item').removeClass('select');
$(this).addClass('select')
return false; }
})
}
event.stopPropagation();
})
autoMail.blur(function(event){
if(autoMail.val() == '' || autoMail.val() == autoMail.vars.deValue){
Alert(autoMail.vals())
autoMail.val(autoMail.vars.deValue).addClass(autoMail.vars.textCls)
}
})
//文本域键盘松开事件
autoMail.keyup(event){
if($(autoMail.list).length == 0){ autoMail.add() ;
}
if(autoMail.list.length > 0){
var keyCode = event.keyCode
//경고(keyCode)
스위치(keyCode){
사례 13:
autoMail.remove();
autoMail.blur(); break;
사례 38:
_index--;
if(_index < 0)
_index = 0
}
autoMail.keyOperate(_index) ;
휴식
사례 40:
_index ; if(_index > $('.item ',autoMail.list).length - 1){
_index = ('.item',autoMail.list).length - 1
}
autoMail.keyOperate(_index);
break;
default:
if(autoMail.val().indexOf('@') < 0){
_value = autoMail.val();
autoMail.order(_value);
}
}
}
})
$(document).click(function(){
if($(autoMail.list).length > 0){
autoMail.remove();
autoMail.blur();
}
})
}
//创建列表
autoMail.create = function(){
var li = '';
for(var i = 0; i < autoMail.vars.mailArr.length; i++){
li += '
'+ '' + '@' + autoMail.vars.mailArr[i] + '' + '';
}
autoMail.list = $('
');
autoMail.list.css({
'위치' : '절대',
'왼쪽' : _왼쪽,
'상단' _ top _height autoMail.vars.listTop,
'min -width': _width
})
autoMail.list.appendTo($('body'));
//邮箱列表绑정사件
autoMail.list.find('.item').click(function(event){
autoMail.getVal($(this))
자동메일.
event.stopPropagation();
})
autoMail.list.find('.item').hover(
function(){ $(this).add 클래스(' hover');
function(){ $(this).removeClass('hover') }
)
return autoMail.list;
}
//序列化列表
autoMail.order = function(_value){
$('.name',autoMail.list).remove();
var name = $('
' _value '');
$('.item',autoMail.list).prepend(이름);
}
//添加列表
autoMail.add = function(){
if(typeof autoMail.list == 'undefine' || autoMail.list.length < 1) autoMail.create ();
}
//移除列表
autoMail.remove = function(){
if(autoMail.list.length > 0){
autoMail .list.remove();
autoMail.list 삭제; } }
// 获取值 automail.getVal = function (obj) { if ($ ( '. name', obj) .text ()! = '' ') {
var selectValue = obj.text();
autoMail.val(selectValue);
}else{
false를 반환합니다.
}
}
//键盘操작
autoMail.keyOperate = function(_index){
$('.item',autoMail.list).eq(_index) .addClass(' hover').siblings('.item').removeClass('hover');
autoMail.val($('.item',autoMail.list).eq(_index).text());
}