点击按钮我正在调用此功能
toggleFunction(){
//Do something here to toggle between function A and function B
}
A(){} //Call this first
B(){} //Call this after
如何以简单的方式在javascript中实现?
提前多多感谢!
答案 0 :(得分:3)
您必须使用变量来管理切换:
var toggle = true;
toggleFunction(){
toggle ? functionA() : functionB();
toggle = !toggle;
}
functionA() {}
functionB() {}
答案 1 :(得分:1)
正如@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;
}
答案 2 :(得分:0)
设置一个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++]();
});
&#13;
<button>Click</button>
&#13;