zoukankan      html  css  js  c++  java
  • jquery 添加关键字小插件

    模块化封装,兼容seajs

    /**
     * User: c3t
     * Date: 14-3-25
     * Time: 下午4:16
     */
    
    
    define(function (require, exports, module) {
        return function (jQuery) {
            (function ($) {
                var setting = null;
                $.fn.keywordInput = function (opts) {
                    setting = $.extend({
                        number: 5, //关键字数量限定
                        msg: "请输入关键字,通过逗号或者回车确认"
                    }, opts || {});
                    init(this);
                    this.keyup(inputKeywords);
                    //通过事件委派。对新加入的标签添加事件
                    $("#keywords-wrap").on("click", ".keyword-shut", function (event) {
                        $(this).parent(".keyword-in").remove();
                        event.preventDefault();
                    });
    
                };
                function init(input) {
                    $(input).val(setting.msg);
                    $(input).addClass("keyword-input");
                    $(input).wrap("<div id='keyword-container'></div>").before("<div id='keywords-wrap'></div>");
    
                    $(input).focus(function () {
                        $(this).val("");
                    });
    
                    $(input).blur(function () {
                        $(this).val(setting.msg);
                    });
                }
    
                function inputKeywords(event) {
                    var code = event.keyCode;
                    if (code == 188 || code == 13) {
                           var c = $(this).val();
                        if(c!="") {
                            if($(".keyword-in").length >=setting.number){
                                alert("最多只能允许添加"+setting.number+"个关键字");
                                event.preventDefault();
                                return  false;
                            }
                            //防止关键字重复
                            var aks = $("input[name='aks']");
                            for(var i=0;i<aks.length;i++) {
                                if($(aks[i]).val()==c) {
                                    alert("不能添加重复的关键字");
                                    event.preventDefault();
                                    return false;
                                }
                            }
    
                            var ki = createKeyWord(c);
                            $('#keywords-wrap').append(ki);
                            $(this).val("");
                        }
                    }
    
                }
    
                function createKeyWord(val) {
                    return "<div class='keyword-in'>"+
                                "<span>"+val+"</span>"+
                                "<a href='#' class='keyword-shut'>×</a>"+
                                "<input type='hidden' name='aks' value='"+val+"'/>"+
                           "</div>";
                }
            })(jQuery);
        }
    });

    css 样式

    #keyword-container {
        border: 1px solid #bbb;
         300px;
    }
    
    input.keyword-input {
        border: none;
         300px;
        color: #aaa;
        height: 28px;
    }
    
    .keyword-in {
        float: left;
        font-size: 12px;
        margin: 3px;
        background: #3fa7cb;
        color: #fff;
    }
    
    .keyword-shut:link, .keyword-shut:visited {
        color: #fff;
        text-decoration: none;
    }
    
    a.keyword-shut:hover {
        color: #ff0000;
    }
    

     页面

     <input type="text" id="keyword-input" value=""/>
    

     调用

    $("#keyword-input").keywordInput();
    
  • 相关阅读:
    maven junit.framework不存在问题解决
    maven项目在打war包时出现非法字符: 'ufeff' 解决方案
    如何隐藏tomcat命令窗口
    小程序如何生成开发版的带参二维码
    小程序码生成随记
    生活中的一些笔记
    存储过程
    项目出现 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 解决方法
    maven环境配置详解,及maven项目的搭建及maven项目聚合
    sqldeveloper和plsqldebeloper
  • 原文地址:https://www.cnblogs.com/or2-/p/3632146.html
Copyright © 2011-2022 走看看