我需要在代码中获取一个切换功能,因此我进行了搜索并得到了它。现在,我将其实现到我的代码中(下面的代码已简化),但是您必须单击两次按钮才能使其正常工作。单击两次后,它可以正常工作。

是什么导致此问题,我该如何解决?



var triggerbtn = $('#trigger');

function showThis() {
  triggerbtn.text('Show this!');
  $(this).one("click", hideThis);
}

function hideThis() {
  triggerbtn.text('Hide this!');
  $(this).one("click", showThis);
}

triggerbtn.one("click", showThis);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="trigger">Show this!</button>

最佳答案

按钮的默认状态为show,并且在首次单击时再次尝试将其设置为show。第一次点击应该是hide



var triggerbtn = $('#trigger');

function showThis() {
  triggerbtn.text('Show this!');
  $(this).one("click", hideThis);
}

function hideThis() {
  triggerbtn.text('Hide this!');
  $(this).one("click", showThis);
}

triggerbtn.one("click", hideThis);  // Here is the change

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="trigger">Show this!</button>

10-04 22:15