• inputclean插件的使用方法


    inputclean插件的使用方法
    语言:javascript
    是jquery插件,
    目的:给文本框添加×,点击×,就可以清空文本框内容.
    如图:
    inputclean的样子
    详细交互效果:
    1,当文本框聚焦时,×永久显示,无论鼠标光标在不在文本框上面(hover);
    2,当文本框失去焦点时,仅仅有鼠标hover,×才会显示,鼠标移开,×消失;
    3,点击×,文本框内容被清空,且文本框自己主动聚焦.

    整个插件不到75行,所以就直接贴代码了:
    文件名称:jquery.inputclean.js

    /**
     * Created by huangweii on 2015/7/27.
     * 用于添加文本框的×,点击×会清空文本框的内容
     */
    $.fn.inputclean = function (option, callback) {
        var settings = $.extend({
            inputClearClass: undefined,
            deviationTop: undefined/*垂直方向上的误差*/,
            deviationLeft: undefined/*水平方向上的误差*/,
            clickCallback: undefined/*清空文本框之后的回调事件*/,
            noFocusAfterClean: undefined/* 清空文本框内容后是否聚焦 */,
            parentHoverClass: 'inputParentLi'/*文本框的父元素的class,用于hover时显示×*/
    
        }, option);
    
        function bootstrap($that) {
            var defInputClearClass = 'inputClearBtn';//正常情况下,字体的颜色
            if (settings.inputClearClass) {
                defInputClearClass = settings.inputClearClass;
            }
            var cleanBtnTop = 11;
            if (settings.deviationTop) {
                cleanBtnTop = cleanBtnTop + Number(settings.deviationTop);
            }
            var cleanBtn = '<i  class="' + defInputClearClass + '"></i>';
            var $cleanBtn = $(cleanBtn);
            $that.before($cleanBtn);
            $that.data('inputclean', true);//用于推断 是否有×  console.log($that.data('inputclean'))
            /* 为什么要推断是否有×呢?
             假设有×,则有内容时显示,无内容时不显示:
             if($orgFullName.data('inputclean')){
             if($orgFullName.val()){
             $orgFullName.prev().show();
             }else{
             $orgFullName.prev().hide();
             }
             }
             * */
            if (settings.parentHoverClass) {//添加父元素的样式,用于父元素hover时,显示×
                $parentLi = $that.parent();
                if (!$parentLi.hasClass(settings.parentHoverClass)) {
                    $parentLi.addClass(settings.parentHoverClass);
                }
            }
            var width_input = $that.width();
            if (settings.deviationLeft) {
                width_input = width_input + settings.deviationLeft;
            }
            console.log('width_input:' + width_input);
            $cleanBtn.css('left', (width_input + 12) + 'px');
            $cleanBtn.css('top', (cleanBtnTop) + 'px');
            $that.css('padding-right', '20px');
            $cleanBtn.click(function (e) {
                $that.val('');
                //$cleanBtn.hide();//隐藏×
                if (settings.noFocusAfterClean === undefined || settings.noFocusAfterClean === false) {
                    console.log(settings.noFocusAfterClean);
                    $that.focus();
                }
    
                if (settings.clickCallback && typeof settings.clickCallback === 'function') {
                    settings.clickCallback(e);
                }
            })
        }
    
        return this.each(function () {
            var $elem = $(this);
            bootstrap($elem);
            if ($.isFunction(callback)) callback($elem)
        })
    };

    參数说明

    參数名 含义 说明
    inputClearClass ×的样式 比如 ‘inputClearBtn’
    deviationTop 垂直方向上的误差 默认值为undefined,可能须要设置,特别是在父标签高度不统一时
    deviationLeft 水平方向上的误差 默认值为undefined,一般不用设置
    clickCallback 清空文本框之后的回调事件 比方清空文本框之后,提交button应该置灰
    noFocusAfterClean 清空文本框内容后是否聚焦 默认值为undefined,表示聚焦
    parentHoverClass 文本框的父元素的class,用于hover时显示× .inputParentLi:hover .inputClearBtn{display:block;}

    调用:

    var $orgFullName = $('input[name=orgFullName]');
            $orgFullName.inputclean({
                deviationTop: 3
            });
     var $partnerCode = $('input[name=partnerCode]');
            $partnerCode.inputclean({
                inputClearClass: 'inputClearBtn',
                deviationTop: 0,
                parentHoverClass: 'inputParentLi',
                clickCallback: function (e) {
                    checkPartnerTrigger();
                }
            });
    
     var $invoice_title = $('input[name=invoice_title]');
        $invoice_title.inputclean({
            inputClearClass: 'inputClearBtn',
            deviationTop: 0,
            parentHoverClass: 'inputParentLi',
            deviationLeft: 2
        });

    我使用的inputClearBtn 样式为:

    .inputClearBtn {
        position: absolute;
        display: none;
        width: 24px;
        height: 25px;
        background: url('http://www.static.chanjet.com/chanjet/images/appstore/delete.png?v=1437103227783') no-repeat;
        cursor: pointer;
    }

    显示效果:
    这里写图片描写叙述
    參考:placeholder插件的使用

  • 相关阅读:
    ubuntu安装QQ
    Ubuntu 14.04/14.10下安装VMware Workstation
    在Macbook上安装ubuntu
    MacBook Air密码忘了,苹果电脑密码忘了怎么办
    Win7下U盘安装Ubuntu14.04双系统
    linux紧急救援模式
    Standard Library Modules Using Notes
    【LeetCode】136 & 137 & 260
    Python获取脚本所在目录的正确方法【转】
    Autorun a python script after reboot using rc.local
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8629693.html
Copyright © 2020-2023  润新知