簡體   English   中英

使用javascript單擊按鈕時如何在兩個不同的功能之間切換?

[英]How to toggle between two different functions when a button is clicked using javascript?

在單擊按鈕時,我正在調用此功能

toggleFunction(){
    //Do something here to toggle between function A and function B
}

A(){} //Call this first
B(){} //Call this after

如何以簡單的方式在javascript中實現?

在此先多謝!

您必須使用變量來管理切換:

var toggle = true;

toggleFunction(){
    toggle ? functionA() : functionB();
    toggle = !toggle;
}

functionA() {}
functionB() {}

正如@Faly所說,您需要一個變量來切換。

新方法是使用~~boolean轉換為number

function A() {console.log('A');
function B() {console.log('B');
var funcs = [A,B]; 
var bool = false; 
function toggleFunction() { 
  funcs[~~bool](); 
  bool = !bool; 
}

設置一個lastInvokedIndex屬性,該屬性將保存最后調用的方法名稱

btn.addEventListener( "click", function(e){
  var methodsToInvoke = [ A, B ];
  var el = e.currentTarget;
  //el.lastInvokedIndex = el.lastInvokedIndex || 0;
  el.lastInvokedIndex = el.lastInvokedIndex >= methodsToInvoke.length ? 0 : (el.lastInvokedIndex || 0);
  methodsToInvoke[el.lastInvokedIndex++]();
});

演示

 var A = () => { console.log("A") }; var B = () => { console.log("B") }; var btn = document.querySelector( "button" ); btn.addEventListener( "click", function(e){ var methodsToInvoke = [ A, B ]; var el = e.currentTarget; //el.lastInvokedIndex = el.lastInvokedIndex || 0; el.lastInvokedIndex = el.lastInvokedIndex >= methodsToInvoke.length ? 0 : (el.lastInvokedIndex || 0); methodsToInvoke[el.lastInvokedIndex++](); }); 
 <button>Click</button> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM