两个按钮可在两个功能和一个功能之间切换

时间:2018-06-14 08:24:49

标签: javascript jquery jquery-ui

有2个按钮和2个功能。

Button1应该在functionA和functionB之间切换。 Button2应始终只触发functionB。

$("#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")按钮两次才能继续在两个功能之间切换。

我的问题是,即使点击了$("#hamburger")按钮,如何让$("#close")在functionA和functionB之间切换?

1 个答案:

答案 0 :(得分:1)

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



$("#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>
&#13;
&#13;
&#13;