绑定和解除绑定功能

时间:2016-07-27 09:17:54

标签: javascript jquery bind unbind

我有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>

2 个答案:

答案 0 :(得分:1)

在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);
}

答案 1 :(得分:0)

您可以使用if语句分配您希望函数使用数字执行的操作:

&#13;
&#13;
<!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>
&#13;
&#13;
&#13;

PS:您也可以对functionType使用布尔值(true / false),但如果您计划添加更多功能,我会使用数字。