javascript - jquery扩展函数参数为什么会一直累加?

查看:75
本文介绍了javascript - jquery扩展函数参数为什么会一直累加?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

重复点击input#e和input#c,Singleoption的参数为什么会一直累加,不懂原理,求解

//html
    <input type="text" name="e" id="e" value="" /> 
    <input type="text" name="c" id="c" value="" /> 
    <input type="button" name="v" id="v" value="sub" />

//js
 $('#e').live('click', function(e) {
        $(this).Singleoption({
            column: 1,
            Bound: "#e"
        });
        e.stopPropagation();
    });
    $('#c').live('click', function(e) {
        $(this).Singleoption({
            column: 2,
            Bound: "#c"
        });
        e.stopPropagation();
    });
    $.fn.Singleoption = function(options) {
        var defaults = {
            column: 1,
            Bound: ""
        };
        var options = $.extend({}, defaults, options);
        var a = function() {
            console.log("this a()");
        }
        var b = function() {
            console.log("this b()")
        }
        switch(options.column) {
            case 1:
                a();
                break;
            case 2:
                b();
                break;
        }
        $("body").on("click", "#v", function(e) {
            console.log(options.Bound);
        })
    }

解决方案

因为你每次点击都会给#v绑定一次事件。多次点击造成了多次绑定

这篇关于javascript - jquery扩展函数参数为什么会一直累加?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆