Javascript 在传递带参数的函数时,单击事件不触发

Javascript 在传递带参数的函数时,单击事件不触发,javascript,html,dom,events,addeventlistener,Javascript,Html,Dom,Events,Addeventlistener,有人能告诉我为什么这个点击事件不会触发吗?函数似乎工作得很好(除了打印成HTML,但我会继续讨论) 函数longestWordFunc(stringArg){ console.log(stringArg) var stringSplit=stringArg.split(“”); console.log(stringSplit) var longestWord=0; 对于(var i=0;i最长单词){ longestWord=stringSplit[i]。长度; } longestWord=s

有人能告诉我为什么这个点击事件不会触发吗?
函数
似乎工作得很好(除了打印成HTML,但我会继续讨论)

函数longestWordFunc(stringArg){
console.log(stringArg)
var stringSplit=stringArg.split(“”);
console.log(stringSplit)
var longestWord=0;
对于(var i=0;i最长单词){
longestWord=stringSplit[i]。长度;
}
longestWord=stringSplit[i];
};
console.log(longestWord)
console.log(longestWord.length)
document.getElementsByClassName(“longestWord”).innerHTML=longestWord;
document.getElementsByClassName(“longestWordCount”).innerHTML=longestWord.length;
};
让searchString=document.querySelector(“.searchString”).value;
console.log(searchString);
document.querySelector(“.generate”).addEventListener(“单击”,longestWordFunc(搜索字符串))

生成
longestWordFunc(searchString)
返回未定义的
,因此此行:

document.querySelector(“.generate”).addEventListener(“单击”,longestWordFunc(搜索字符串))

被评估为:

document.querySelector(“.generate”).addEventListener(“单击”,未定义)

您没有将任何内容设置为click事件侦听器

我已修复了您的代码片段,以便在下面工作:

函数longestWordFunc(){
让stringArg=document.querySelector(“.searchString”).value;
console.log(stringArg);
var stringSplit=stringArg.split(“”);
console.log(stringSplit);
var longestWord=0;
对于(var i=0;i最长单词){
longestWord=stringSplit[i]。长度;
}
longestWord=stringSplit[i];
};
console.log(longestWord);
console.log(longestWord.length);
document.getElementsByClassName(“longestWord”).innerHTML=longestWord;
document.getElementsByClassName(“longestWordCount”).innerHTML=longestWord.length;
};
document.querySelector(“.generate”).addEventListener(“单击”,longestWordFunc)

生成
longestWordFunc(searchString)
返回未定义的
,因此此行:

document.querySelector(“.generate”).addEventListener(“单击”,longestWordFunc(搜索字符串))

被评估为:

document.querySelector(“.generate”).addEventListener(“单击”,未定义)

您没有将任何内容设置为click事件侦听器

我已修复了您的代码片段,以便在下面工作:

函数longestWordFunc(){
让stringArg=document.querySelector(“.searchString”).value;
console.log(stringArg);
var stringSplit=stringArg.split(“”);
console.log(stringSplit);
var longestWord=0;
对于(var i=0;i最长单词){
longestWord=stringSplit[i]。长度;
}
longestWord=stringSplit[i];
};
console.log(longestWord);
console.log(longestWord.length);
document.getElementsByClassName(“longestWord”).innerHTML=longestWord;
document.getElementsByClassName(“longestWordCount”).innerHTML=longestWord.length;
};
document.querySelector(“.generate”).addEventListener(“单击”,longestWordFunc)


生成
您应该在
的事件侦听器中定义
搜索字符串
。生成
。除非,否则您的
搜索字符串
将是
未定义的
,因为用户最初没有输入任何字符串

函数longestWordFunc(stringArg){
console.log(stringArg)
var stringSplit=stringArg.split(“”);
console.log(stringSplit)
var longestWord=0;
对于(var i=0;i最长单词){
longestWord=stringSplit[i]。长度;
}
longestWord=stringSplit[i];
};
console.log(longestWord)
console.log(longestWord.length)
document.getElementsByClassName(“longestWord”).innerHTML=longestWord;
document.getElementsByClassName(“longestWordCount”).innerHTML=longestWord.length;
};
document.querySelector(“.generate”).addEventListener(“单击”,()=>{
让searchString=document.querySelector(“.searchString”).value;
longestWordFunc(搜索字符串);
});


生成
您应该在
的事件侦听器中定义
搜索字符串
。生成
。除非,否则您的
搜索字符串
将是
未定义的
,因为用户最初没有输入任何字符串

函数longestWordFunc(stringArg){
console.log(stringArg)
var stringSplit=stringArg.split(“”);
console.log(stringSplit)
var longestWord=0;
对于(var i=0;i最长单词){
longestWord=stringSplit[i]。长度;
}
longestWord=stringSplit[i];
};
console.log(longestWord)
console.log(longestWord.length)
document.getElementsByClassName(“longestWord”).innerHTML=longestWord;
document.getElementsByClassName(“longestWordCount”).innerHTML=longestWord.length;
};
document.querySelector(“.generate”).addEventListener(“单击”,()=>{
让searchString=document.querySelector(“.searchString”).value;
longestWordFunc(搜索字符串);
});


生成
这很有意义,谢谢。我有没有更喜欢的方式来处理点击事件,或者这已经足够了?对你来说已经足够了。顺便说一句,最好去掉
事件监听器中的控制台日志。是的,一旦一切正常,我会这么做的。对不起。可以用它们来测试对吗?这很有道理谢谢。我有没有更喜欢的方式来处理点击事件,或者这已经足够了?对你来说已经足够了。顺便说一句,最好去掉
事件监听器中的控制台日志。是的,我会这样做的