两个按钮,用于在两个函数和单个函数之间切换



有2个按钮和两个功能。

按钮 1 应在函数 A 和函数 B 之间切换。 按钮 2 应始终仅触发函数 B。

$("#hamburger").click( toggleAB );
$("#close").click(function(){
functionB();
});
functionA(){ //expand menu }
functionB(){ //collapse menu }
function toggleAB(){
var el = this;
return [
function() { functionA(); },
function() { functionB(); }
][el.tog^=1]();
}

目前,$("#hamburger")在这两个功能之间完美切换。但是,如果我单击$("#close")按钮,则必须单击$("#hamburger")按钮两次才能继续在两个功能之间切换。

我的问题是,即使是否单击了$("#close")按钮,如何使$("#hamburger")在函数A和功能B之间切换?

实现此目的的最简单方法是在按钮上存储一个标志,以便您可以知道最后调用了哪个函数,以便知道接下来要调用哪个函数。试试这个:

$("#hamburger").click(function() {
var clicks = $(this).data('clicks') || 0;
clicks % 2 == 0 ? functionA() : functionB();
$(this).data('clicks', ++clicks);
});
$("#close").click(function() {
functionB();
});
function functionA() {
console.log('A');
}
function functionB() {
console.log('B');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="hamburger">Hamburger</button>
<button id="close">Close</button>

最新更新