当有人单击按钮时,我希望我的函数返回 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/