绑定和解除绑定函数
bind and unbind functions
我有 3 个按钮 - btn 1、2 和 3 - 每个按钮都有自己的功能。我想要的是按钮 1 默认具有功能 1。但是当按下按钮 2 时,按钮 1 的功能必须切换到功能 4。当按下按钮 3 时,按钮 1 必须重新分配到功能 1。所以按钮2和按钮3有自己的功能,但是他们也要切换按钮1的功能。代码是:
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<button id="button1">button 1</button>
<button id="button2">button 2</button>
<button id="button3">button 3</button>
<script>
document.getElementById("button1").addEventListener("click", myFunction1);
function myFunction1() {
alert ("1");
}
document.getElementById("button2").addEventListener("click", myFunction2);
function myFunction2() {
alert ("2");
}
document.getElementById("button3").addEventListener("click", myFunction3);
function myFunction3() {
alert ("3");
}
</script>
<script>
function myFunction4() {
alert ("4");
}
</script>
</body>
</html>
在 function2 和 function3 中使用 removeEventListener
,然后使用 addEventListener
附加适当的函数
function myFunction2() {
document.getElementById("button1").removeEventListener("click", myFunction1);
document.getElementById("button1").addEventListener("click", myFunction4);
}
function myFunction3() {
document.getElementById("button1").removeEventListener("click", myFunction4);
document.getElementById("button1").addEventListener("click", myFunction1);
}
您可以使用 if 语句使用数字分配您希望函数执行的操作:
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<button id="button1">button 1</button>
<button id="button2">button 2</button>
<button id="button3">button 3</button>
<script>
document.getElementById("button1").addEventListener("click", myFunction1);
var functionType = 1;
function myFunction1() {
if(functionType == 1){
alert("1");
} else if(functionType == 4){
myFunction4();
}
}
document.getElementById("button2").addEventListener("click", myFunction2);
function myFunction2() {
alert ("2");
functionType=4;
}
document.getElementById("button3").addEventListener("click", myFunction3);
function myFunction3() {
alert ("3");
functionType=1;
}
function myFunction4() {
alert ("4");
}
</script>
<script>
</script>
PS:您也可以为 functionType
使用布尔值 (true/false),但如果您计划添加更多功能,我会使用数字。
我有 3 个按钮 - btn 1、2 和 3 - 每个按钮都有自己的功能。我想要的是按钮 1 默认具有功能 1。但是当按下按钮 2 时,按钮 1 的功能必须切换到功能 4。当按下按钮 3 时,按钮 1 必须重新分配到功能 1。所以按钮2和按钮3有自己的功能,但是他们也要切换按钮1的功能。代码是:
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<button id="button1">button 1</button>
<button id="button2">button 2</button>
<button id="button3">button 3</button>
<script>
document.getElementById("button1").addEventListener("click", myFunction1);
function myFunction1() {
alert ("1");
}
document.getElementById("button2").addEventListener("click", myFunction2);
function myFunction2() {
alert ("2");
}
document.getElementById("button3").addEventListener("click", myFunction3);
function myFunction3() {
alert ("3");
}
</script>
<script>
function myFunction4() {
alert ("4");
}
</script>
</body>
</html>
在 function2 和 function3 中使用 removeEventListener
,然后使用 addEventListener
function myFunction2() {
document.getElementById("button1").removeEventListener("click", myFunction1);
document.getElementById("button1").addEventListener("click", myFunction4);
}
function myFunction3() {
document.getElementById("button1").removeEventListener("click", myFunction4);
document.getElementById("button1").addEventListener("click", myFunction1);
}
您可以使用 if 语句使用数字分配您希望函数执行的操作:
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<button id="button1">button 1</button>
<button id="button2">button 2</button>
<button id="button3">button 3</button>
<script>
document.getElementById("button1").addEventListener("click", myFunction1);
var functionType = 1;
function myFunction1() {
if(functionType == 1){
alert("1");
} else if(functionType == 4){
myFunction4();
}
}
document.getElementById("button2").addEventListener("click", myFunction2);
function myFunction2() {
alert ("2");
functionType=4;
}
document.getElementById("button3").addEventListener("click", myFunction3);
function myFunction3() {
alert ("3");
functionType=1;
}
function myFunction4() {
alert ("4");
}
</script>
<script>
</script>
PS:您也可以为 functionType
使用布尔值 (true/false),但如果您计划添加更多功能,我会使用数字。