首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的javascript函数没有被新函数替换?

为什么我的javascript函数没有被新函数替换?
EN

Stack Overflow用户
提问于 2019-05-05 17:16:03
回答 1查看 36关注 0票数 0

我想在单击按钮后将javascript函数更改为被调用,但调用的仍然是旧函数。

函数在第一次单击时调用: longueur()

函数在第二次单击时调用: tester()

html代码:

代码语言:javascript
运行
复制
<input id="entree" type="text" name="longueur" value="" /> 

<input id="bouton" type="submit" value="longueur du mot" onclick="longueur()" />

javascript:

代码语言:javascript
运行
复制
function longueur() {
    let entree = document.getElementById("entree") ;
    let bouton = document.getElementById("bouton") ;
    ... 
    ...
    ...
    entree.name = "lettre" ;
    bouton.value = "Nouvelle lettre" ;


    bouton.onclick = "tester()" ;   

}

为什么在第二次单击时仍调用longueur()?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-05 17:24:43

.onclick属性期望接收一个function,而不是使用字符串 "tester()"来设置它。检查下一个显示正确用法的示例:

代码语言:javascript
运行
复制
function longueur()
{
    console.log("longueur called!")
    let bouton = document.getElementById("bouton") ;
    bouton.value = "Nouvelle lettre" ;
    bouton.onclick = tester;
}

function tester()
{
    console.log("tester called!");
}
代码语言:javascript
运行
复制
.as-console {background-color:black !important; color:lime;}
代码语言:javascript
运行
复制
<input id="entree" type="text" name="longueur" value=""/> 
<input id="bouton" type="submit" value="longueur du mot" onclick="longueur()"/>

在需要将参数传递给tester()方法的特殊情况下,您可以像在下一个示例中一样继续使用匿名函数表达式

代码语言:javascript
运行
复制
let arg1 = <some_value>;
let arg2 = <some_value>;
...
bouton.onclick = function() { tester(arg1, arg2); };
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55994468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档