【问题标题】:Javascript: skiping arguments (undefined) on function call issueJavascript:在函数调用问题上跳过参数(未定义)
【发布时间】:2017-12-02 02:43:23
【问题描述】:

根据post(和许多其他人),我编写了这个函数:

function cssDisplay(block,none){
  block.css('display','block');
  none.css('display','none');
}

然后,调用它时,我只需要一个参数(块或无),如下所示:

  email.keyup(function(){
      if(email.hasClass('has-error')) {
        cssDisplay(errorEmail,undefined);
      }else{
        button.prop("disabled", false);
        cssDisplay(undefined,errorEmail);
      }
  });

但它只适用于显示块。当输入有效时,错误消息不会消失,所以我遗漏了一些东西。有人可以帮帮我吗?

【问题讨论】:

  • 这是因为您将 undefined 作为参数传递,所以 javascript 无法从不存在的东西中读取 undefined 属性

标签: javascript function


【解决方案1】:

如果你需要改变一个元素,那么你不需要一个函数,直接改变它:

email.keyup(function(){
    if(email.hasClass('has-error')) {
        errorEmail.style.display = "block";   // show it
    } else {
        button.prop("disabled", false);
        errorEmail.style.display = "none";    // hide it
    }
});

【讨论】:

  • 嗯,谢谢你的回答,但我就是这样做的,但由于脚本有点长而且代码有些重复,我认为有一个函数......但它是有效的至于我的问题
  • @Mellville 不客气!您可以更改cssDisplay,以便在访问它们的style 之前检查参数是否为undefined。或者创建其他辅助函数,可能是hide(element)/show(element)toggle(element) 的组合,用于切换元素的可见性。
猜你喜欢
  • 2019-11-11
  • 2016-06-22
  • 1970-01-01
  • 2015-12-07
  • 2012-04-10
  • 1970-01-01
  • 2018-06-13
  • 2011-09-25
相关资源
最近更新 更多