gpt4 book ai didi

javascript - 这两个代码块之间的差异

转载 作者:行者123 更新时间:2023-12-01 02:53:33 25 4
gpt4 key购买 nike

为什么使用匿名函数的第一个 block 与使用命名函数的第二个 block 的工作方式不同?第一个 block 在“Hello”和“Goodbye”之间变化,但第二个 block 没有变化。

第一个 - 使用匿名函数:

function sayGoodbye() {
$("#title").html("Goodbye");
$("#title").click(function () {
$("#title").html("Hello");
$("#title").off("click");
});
};

第二 - 使用命名函数:

function sayGoodbye() {
console.log("goodbye");
$("#title").html("Goodbye");
$("#title").click(sayHello());
};

function sayHello() {
console.log("hello");
$("#title").html("Hello");
$("#title").off("click");
}

HTML:

<head>
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
</head>

<body>
<h1 id="title" onclick="sayGoodbye();"> Hello </h1>
</body>

最佳答案

$("#title").click(sayHello()); 使用:

$("#title").on("click", sayHello);

(或... $("#title").click(sayHello);)

你应该分配一个sayHello,而不是执行sayHello()

function sayGoodbye(){
console.log("goodbye");
$("#title").html("Goodbye");
$("#title").click(sayHello);
};

function sayHello() {
console.log("hello");
$("#title").html("Hello");
$("#title").off("click");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1 id="title" onclick="sayGoodbye();"> Hello </h1>


这是关于切换两种状态或两个功能的另一篇精彩读物:
https://stackoverflow.com/a/21520499/383904

关于javascript - 这两个代码块之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34169224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com