JoeNahm 2017-09-29 13:15 采纳率: 100%
浏览 772
已采纳

js遇到了“诡异”的现象

这是我写的一个向数组添加元素的函数

 function addProject(whereToAdd){
    var winObj = $("#winProject");
    var yesButton = winObj.find(".yes").eq(0);

    for( var j = 0 ; j < winObj.find("input").length ; j++ ) //清除旧值
        winObj.find("input").eq(j).val("");

    winObj.slideDown(100);

    yesButton.click(function(){
        var projectName = $("#projectName").val();

        if( projectName != "" ){
            var projectMoney = $("#projectMoney").val() ? parseInt($("#projectMoney").val()) : 0; 

            var project = new Project(projectName,projectMoney);
            whereToAdd.push(project);

            winObj.slideUp(200);
        }else{
            alert("还没有填项目名啊!");
        }
    });
}

这是调用他的地方

 $("#addProject").click(function(){
        addProject(projectArr);
        print(projectArr);
    });

这是测试输出,为啥这么诡异 为啥还一次比一次多了?我期待的是一次存一个
图片说明

  • 写回答

5条回答 默认 最新

  • Go 旅城通票 2017-09-30 04:14
    关注

    因为你没执行一次addProject这个函数,yesButton就会继续绑定一次click事件,叠加起来了,所以会成倍的+内容

    yesButton.click(function(){事件绑定放到addProject函数外

    
        winObj.find(".yes").eq(0).click(function(){
            var projectName = $("#projectName").val();
    
            if( projectName != "" ){
                var projectMoney = $("#projectMoney").val() ? parseInt($("#projectMoney").val()) : 0; 
    
                var project = new Project(projectName,projectMoney);
                whereToAdd.push(project);
    
                winObj.slideUp(200);
            }else{
                alert("还没有填项目名啊!");
            }
        });
    
    
    
      function addProject(whereToAdd){
        var winObj = $("#winProject");
        var yesButton = winObj.find(".yes").eq(0);
    
        for( var j = 0 ; j < winObj.find("input").length ; j++ ) //清除旧值
            winObj.find("input").eq(j).val("");
    
        winObj.slideDown(100);
    
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 ROS Turtlebot3 多机协同自主探索环境时遇到的多机任务分配问题,explore节点
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题