标签添加,按下回车键自动匹配添加; 标签删除,可以按退格键进行删除或者直接鼠标点击删除 标签添加自动换行 默认最多可以添加10个标签,可自行设定值limit值来更改 默认标签,
标签删除,可以按退格键进行删除或者直接鼠标点击删除
标签添加自动换行
默认最多可以添加 10 个标签,可自行设定值 limit 值来更改
默认标签,使用参数为 tag,值用逗号进行分割
1. [代码][JavaScript]代码
/** * 标签 * * @author lock * @link https://github.com/lock-upme/jquerytag */ (function($) { $.fn.lockTag = function(options) { var defaults = { tag : null, //默认标签,用于表单修改标签,以逗号分割 limit : 10 //默认可以添加10个标签 }; var opts = $.extend(defaults, options); var obj= $(this); //添加 var add = function(e) { obj.delegate('input', 'keypress', function(e) { var that = $(this); that.next().hide(); if (e.keyCode == 13) { if (that.val() == '') { return false; } if (obj.find('.ui-tag').length == opts.limit) { that.val(''); return false; } that.css('width', '60px').parent().before('<span class="ui-tag">#'+that.val()+'</span>'); that.val(''); } }); }; //赋予Input焦点 var inputFocus = function() { obj.delegate('.ui-iptwrap','click', function() { obj.find('input').focus(); }); }; //input失去焦点的时候,信息提示 var tipsShow = function() { obj.delegate('input', 'blur',function() { var that = $(this); if (obj.find('.ui-tag').length == 0) { that.next().show(); } }); }; //退格键删除标签 var removeBackspace = function() { obj.delegate('input', 'keydown', function(e) { if (e.keyCode == 8) { var that = $(this); if ($.trim(that.val()) == '') { that.parent().prev().remove(); } } }); }; //鼠标点击删除标签 var removeMouse = function() { obj.delegate('.ui-tag', 'click', function(e){ $(this).remove(); if (obj.find('.ui-tag').length == 0) { obj.find('label').show(); } }) }; //初始化 var init = function() { //初始化标签HTML var html = ''; html += '<div class="ui-tags">'; html += '<div class="ui-iptwrap">'; html += '<input maxlength="20" /><label>添加相关标签,用回车分隔、退格/点击删除</label>'; html += '</div>'; html += '</div>'; obj.html(html); if (opts.tag) { obj.find('input').css('width', '60px'); var tagarr = opts.tag.split(','); $.each(tagarr, function(i, tag){ obj.find('.ui-tags').prepend('<span class="ui-tag">#'+tag+'</span>'); }) obj.find('label').hide(); } add(); tipsShow(); inputFocus(); removeMouse(); removeBackspace(); }; init(); }; })(jQuery);