为了账号安全,请及时绑定邮箱和手机立即绑定

js遇到了“诡异”的现象

js遇到了“诡异”的现象

FFIVE 2019-04-20 14:15:34
这是我写的一个向数组添加元素的函数 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 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

你看下你的projectArr是不是有啥问题


查看完整回答
反对 回复 2019-05-13
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

你是一次性全部添加进去还是点一次添加一个?你只push不清空,前面的数据依旧存在array里面啊,那肯定是一次比一次多啊


查看完整回答
反对 回复 2019-05-13
?
炎炎设计

TA贡献1808条经验 获得超4个赞

每一次都初始化一次就可以了,你是想存到数据库中的话,直接在print(projectArr) 这发请求就可以了,这样数据应该是你想要的。

  $("#addProject").click(function() {
    var projectArr = [];
    addProject(projectArr);
    print(projectArr);
    $.ajax({
        url: "/**",
        mothod: 'POST',
        data: JSON.stringfy(projectArr)
    });
  });


查看完整回答
反对 回复 2019-05-13
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

那个。。谢谢大家的热心回答!好激动,因为大家都回答的那么认真!
由于当时比较着急用,然后csdn这边好像没刷新,我还以为没提交上去呢,就找朋友问
朋友给了我一个令人惊讶的解决方案,然后,尽然出奇的奏效。
就是,把jq的click()换成原生js的onclick,结果啥问题都没有了。。
看来是我对jq理解不够,我会再认真读读各位的回复的,哇 大家真的好认真

查看完整回答
反对 回复 2019-05-13
  • 5 回答
  • 0 关注
  • 537 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信