js绑定事件-(坑)

昨天被自己绑定click事件坑了一下子,学浅乃危险之事。如果读书多了就不会犯这样的错误了。
如图 这里写图片描述
这样一个下拉框,点击“我选1”会生成一条“hello world!!!”,点“继续添加”则会继续添加。如果点击”我选2“也会像之前一样,首先把之前的记录清除掉,再生成一条,可以继续添加,一次生成一条”hello world!!!“

代码如下:

var nodeArea = '<div class="moOrRanArea" style="border:#000 solid 1px;margin:10px 0;">\
                            hello world!!!\
                        </div>';
        $("#moOrRan").change(function(){
            if(this.value!=0){
                $(".externalArea .moOrRanArea").remove();
                $(".externalArea").show().append($(nodeArea));
                $("#addArea").bind("click",function(){
                    $(".externalArea").append($(nodeArea));
                })

            }else{
                $(".externalArea").hide();
                $(".externalArea .moOrRanArea").remove();
            }

        })

看起来没啥问题,但是实际运行是有问题的,从”我选1“切换到”他选二“,刚切换过去是这样的:
这里写图片描述
我点一次”继续添加“就成这样了:
这里写图片描述
点击一次,增加了两条!!!
我考虑了半天。。。然后打断点各种试,发现

$("#addArea").bind("click",function(){
                    $(".externalArea").append($(nodeArea));
                })

从”我选1“切换到”他选2“的时候,每点击一次继续添加,这段代码执行了两边。原来是”$(“#addArea”)“,这个dom元素添加了两次click事件。

$("#addArea").unbind("click").bind("click",function(){...})

首先绑定unbind就搞定。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值