javascript - 点击返回 false,再次点击返回 true

标签 javascript jquery html

当有人单击按钮时,我希望我的函数返回 false 并且 keydown 函数将被禁用。

然后,如果我第二次单击同一个按钮,它将返回 true 并且将启用 keydown 功能。

我确实喜欢这个,但它只返回false并且keydown功能被禁用。我还需要通过单击此按钮来启用此 keydown 功能。

我该怎么做?

var controlsEnabled = true;
$(".keyboard-btn").on('click', function() {
  controlsEnabled = false;
});

$(document).keydown(function(e) {
  if (controlsEnabled) {
    if (e.keyCode == 38) {
      verticalSlideDown();
      console.log("pressed key for Down : " + e.keyCode);
    }

    if (e.keyCode == 40) {
      verticalSlideUp();
      console.log("pressed key for Up: " + e.keyCode);
    }

    if (e.keyCode === 13) {
      var div = $(".scroll-inner-container");
      console.log("pressed key for stop : " + e.keyCode);
      div.stop();
    }
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="keyboard-btn">click here</button>

最佳答案

您的点击甚至只会将 controlEnabled 设置为 false。您需要一种切换方式。

最快的选择是写这个

$(".keyboard-btn").on('click', function() {
  controlsEnabled = !controlsEnabled // will toggle false -> true or true -> false;
});

您还可以使用 if 语句来实现相同的目的..就像这样

$(".keyboard-btn").on('click', function()
{
      if(controlsEnabled)
      {
          controlsEnabled = false;
      }
      else
      {
          controlsEnabled = true;
      }
});

这比较冗长,但完全有效,而且你可能会说它更容易阅读。您还可以使用这样的三元运算符

controlsEnabled = (controlsEnabled)? false : true;

但这并不会真正带来任何优势,既不易于阅读,也不更优雅。但值得了解根据自身有条件地设置值的不同方法。你永远不知道它什么时候会派上用场。

关于javascript - 点击返回 false,再次点击返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46444394/

相关文章:

javascript - 如何在 javascript 中捕获所有 ajax 请求?

javascript - 从 javascript 中的文件选择器中选择文件时调用什么监听器

javascript - 使用 for 循环打印偶数而不使用 if 条件

html - CSS3 : border on a border-radius div

javascript - 如何始终允许打印功能始终可点击?

javascript - 使用Javascript创建表(添加tableee)

jquery - 无法在 Safari 和 Chrome 中克隆文件输入元素。 FF和Opera都可以

javascript - 加载gif图片>执行语句>隐藏gif

javascript - 如何在jquery函数之后执行anchor href?

javascript - 通过 JavaScript 设置 HTML 表单图像输入的 'capture' 属性