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();
    
  • 相关阅读:
    【转贴】SMP、NUMA、MPP体系结构介绍
    【转贴】内存重要参数详解 RAS CAS
    【转贴】内存系列二:深入理解硬件原理
    [百度]将ftp添加到本地映射磁盘的方法
    [百家号]7nm ARM 64核!华为Hi1620高性能CPU公开:3.0GHz
    CISCO系列交换机如何清空配置
    绝对实用 NAT + VLAN +ACL管理企业网络
    思科 vlan 相关操作
    思科路由器的密码忘记了用简单的命令来重置思科路由器密码
    字符串驱动技术—— MethodAddress , MethodName , ObjectInvoke
  • 原文地址:https://www.cnblogs.com/or2-/p/3632146.html
Copyright © 2011-2022 走看看