【问题标题】:How to set function to true/false on click?如何在点击时将功能设置为真/假?
【发布时间】:2017-12-31 04:35:55
【问题描述】:

我试图让导航栏在向上滚动时向下滑动,并在单击#menu-bar 时保持固定。但是当我再次单击同一个按钮时,我不知道如何在自动隐藏时将值更改回 false,就在我有两个按钮的时候。非常感谢任何帮助!

$(function () {
'use strict';

var autohide = $('.navbar').bootstrapAutoHideNavbar({
    disableAutoHide: false
});

$('#menu-bar').click(function () {
    autohide.setDisableAutoHide(true);
});
$('#menu-close').click(function () {
    autohide.setDisableAutoHide(false);
 });
});

【问题讨论】:

  • 您需要引用当前状态,或者通过 getter 访问它,或者将您自己的变量存储在别处。
  • 谢谢!我不确定你是什么意思。我尝试使用 attr 更改 ID,以便在单击后更改为 #menu-close,但似乎禁用自动隐藏仍然是真的?
  • $('#menu-bar').click(function () { 在此处使用 if/else 检查状态(可见/隐藏)。在 if/else 调用 autohide.setDisableAutoHide() 中传递真或假,具体取决于您要检查的内容。

标签: javascript jquery css


【解决方案1】:

你应该使用另一个变量来设置值 disableAutoHide 可能像这样:

$(function () {
'use strict';

var disableAutoHideValue = false;
var autohide = $('.navbar').bootstrapAutoHideNavbar({
    disableAutoHide: false
});

$('#menu-bar').click(function () {
    disableAutoHideValue = ! disableAutoHideValue;
    autohide.setDisableAutoHide(disableAutoHideValue);
});
$('#menu-close').click(function () {
    autohide.setDisableAutoHide(false);
 });
});

告诉我它是否有效!

【讨论】:

  • 谢谢!完美运行!即使没有#menu-close ID,也不知道为什么,是因为“!” ?.我按照上面的建议删除了尝试使用 if/else 的 id,但无法让它工作,所以在我尝试你的代码之前忘了把它放回去。
  • 太棒了!很高兴我能帮忙:)
  • 如果您的问题已关闭,请不要忘记将其标记为已解决。
猜你喜欢
  • 1970-01-01
  • 2020-10-07
  • 1970-01-01
  • 1970-01-01
  • 2015-03-29
  • 1970-01-01
  • 2014-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多