jquery 按钮插件

转载于: http://mrthink.net/

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<style>
/*demo css*/
.i_tips{height:30px;margin-left:20px;color:#f60;font-size:14px;line-height:30px}
.i_box{margin:10px 20px;font-size:14px;float:left; -webkit-user-select:none;user-select:none;}
.i_box *{vertical-align:middle}
.i_box a{padding:2px 5px;background-color:#e9e9e9;border:1px solid #ccc;text-decoration:none;color:#585858;line-height:20px}
.i_box a:hover{color:#000}
.i_box input{width:30px;height:18px;margin:0 8px;padding:2px;border:1px solid #ccc;text-align:center;line-height:16px}
.J_add,.J_add.no-zero-right{
    background: orange;
}
.J_minus.no-zero-left{
    background: orange;
}
</style>

</head>
<body>
<div id="demo">
        <div class="i_tips"></div>
    <div class="i_box"><a href="javascript:;" class="J_minus">-</a><input type="text" value="0" class="J_input" /><a href="javascript:;" class="J_add">+</a></div>
    <div class="i_box"><a href="javascript:;" class="J_minus">-</a><input type="text" value="0" class="J_input" /><a href="javascript:;" class="J_add">+</a></div>
    <div class="i_box"><a href="javascript:;" class="J_minus">-</a><input type="text" value="0" class="J_input" /><a href="javascript:;" class="J_add">+</a></div>
    <div class="i_box"><a href="javascript:;" class="J_minus">-</a><input type="text" value="0" class="J_input" /><a href="javascript:;" class="J_add">+</a></div>
    <div class="i_box"><a href="javascript:;" class="J_minus">-</a><input type="text" value="0" class="J_input" /><a href="javascript:;" class="J_add">+</a></div>

</div> 
</body>
</html>
<script type="text/javascript" src="plugin/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="plugin/slider.js"></script>

<script type="text/javascript">
    $( function() {

        $('.i_box').iVaryVal({},function(value,index){
                $('.i_tips').html('你点击的表单索引是:'+index+';改变后的表单值是:'+value);
        });

});
</script>

js

/*******************************
 * @author Mr.Think
 * @author blog http://mrthink.net/
 * @2011.12.09
 * @可自由转载及使用,但请注明版权归属
 *******************************/

;(function($,window,document,undefined){
  $.fn.iVaryVal=function(iSet,CallBack){
        /*
         * Minus:点击元素--减小
         * Add:点击元素--增加
         * Input:表单元素
         * Min:表单的最小值,非负整数
         * Max:表单的最大值,正整数
         */
         iSet=$.extend({},{Minus:$('.J_minus'),Add:$('.J_add'),Input:$('.J_input'),Min:0,Max:20},iSet);
        // 把所有元素都绑在isSet对象中
        var C=null,O=null; 
        // O input中的值
        //插件返回值
        var $CB={};
        //增加
        iSet.Add.each(function(i){
            $(this).click(function(){
                O=parseInt(iSet.Input.eq(i).val());
                (O+1<=iSet.Max) || (iSet.Max==null) ? iSet.Input.eq(i).val(O+1) : iSet.Input.eq(i).val(iSet.Max);
                        //输出当前改变后的值
                        $CB.val=iSet.Input.eq(i).val();
                        $CB.index=i;
                        test(this, $CB.val);
                        //回调函数
                        if (typeof CallBack == 'function') {
                            CallBack($CB.val,$CB.index);
                        }
                    });
        });
        //减少
        iSet.Minus.each(function(i){
            $(this).click(function(){
                O=parseInt(iSet.Input.eq(i).val());
                O-1<iSet.Min ? iSet.Input.eq(i).val(iSet.Min) : iSet.Input.eq(i).val(O-1);
                $CB.val=iSet.Input.eq(i).val();
                $CB.index=i;
                test(this, $CB.val);
                        //回调函数
                        if (typeof CallBack == 'function') {
                            CallBack($CB.val,$CB.index);
                        }
                    });
        });
        //手动
        iSet.Input.bind({
            'click':function(){
                O=parseInt($(this).val());
                $(this).select();
            },
            'keyup':function(e){
                if($(this).val()!=''){
                    C=parseInt($(this).val());
                                //非负整数判断
                                if(/^[1-9]\d*|0$/.test(C)){
                                    $(this).val(C);
                                    O=C;
                                }else{
                                    $(this).val(O);
                                }
                            }
                        //键盘控制:上右--加,下左--减
                        if(e.keyCode==38 || e.keyCode==39){
                            iSet.Add.eq(iSet.Input.index(this)).click();
                        }
                        if(e.keyCode==37 || e.keyCode==40){
                            iSet.Minus.eq(iSet.Input.index(this)).click();
                        }
                        //输出当前改变后的值
                        $CB.val=$(this).val();
                        $CB.index=iSet.Input.index(this);
                        //回调函数
                        test(this, $CB.val);
                        if (typeof CallBack == 'function') {
                            CallBack($CB.val,$CB.index);
                        }
                    },
                    'blur':function(){
                        $(this).trigger('keyup');
                        if($(this).val()==''){
                            $(this).val(O);
                        }
                        //判断输入值是否超出最大最小值
                        if(iSet.Max){
                            if(O>iSet.Max){
                                $(this).val(iSet.Max);
                            }
                        }
                        if(O<iSet.Min){
                            $(this).val(iSet.Min);
                        }
                        //输出当前改变后的值
                        $CB.val=$(this).val();
                        $CB.index=iSet.Input.index(this);
                        test(this, $CB.val);
                        //回调函数
                        if (typeof CallBack == 'function') {
                            CallBack($CB.val,$CB.index);
                        }
                    }
                });
        function test (selector,c) {
         var children=$(selector).parent().children();
         if (c==0) {

            children.eq(0).removeClass("no-zero-left").addClass("zero-left");
            children.eq(2).removeClass("zero-right").addClass("no-zero-right");
        }else if (c== iSet.Max) {
            children.eq(0).removeClass("zero-left").addClass("no-zero-left");
            children.eq(2).removeClass("no-zero-right").addClass("zero-right");
        }else{
            children.eq(0).removeClass("zero-left").addClass("no-zero-left");
            children.eq(2).removeClass("zero-right").addClass("no-zero-right");
        }
    }
}



})(jQuery,window,document);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值