Javascript:在函数调用问题上跳过参数(未定义)
根据这一点(以及其他许多),我编写了以下函数:Javascript:在函数调用问题上跳过参数(未定义),javascript,function,Javascript,Function,根据这一点(以及其他许多),我编写了以下函数: function cssDisplay(block,none){ block.css('display','block'); none.css('display','none'); } 然后,在调用它时,我只需要一个参数(block或none),如下所示: email.keyup(function(){ if(email.hasClass('has-error')) { cssDisplay(errorEm
function cssDisplay(block,none){
block.css('display','block');
none.css('display','none');
}
然后,在调用它时,我只需要一个参数(block或none),如下所示:
email.keyup(function(){
if(email.hasClass('has-error')) {
cssDisplay(errorEmail,undefined);
}else{
button.prop("disabled", false);
cssDisplay(undefined,errorEmail);
}
});
但它仅适用于显示块。当输入有效时,错误消息不会消失,因此我遗漏了一些东西。有人能帮我吗?如果您需要更改一个元素,则不需要函数,只需直接更改它:
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
}
});
这是因为您将undefined作为参数传递,所以javascript无法从不存在的内容中读取undefined属性。谢谢您的回答,但我就是这么做的,但是由于脚本有点长,代码会有点重复,我以为有一个函数…但这对我的问题是有效的goes@Mellville不客气!您可以更改
cssDisplay
,以便它在访问参数的样式之前检查参数是否未定义
。或者创建其他辅助函数,可能是一个组合的隐藏(元素)
/显示(元素)
或一个切换元素可见性的切换(元素)
。