【问题标题】:Calling jQuery .toggle() on click单击时调用 jQuery .toggle()
【发布时间】:2013-07-16 03:05:23
【问题描述】:

我正在尝试使用 jQuery 来隐藏 this page 上的直播小部件。

我已将包含 div 的默认可见性设置为隐藏,如下所示:

#library {
    visibility: hidden
}

设置一个按钮来切换状态,如下所示:

<a href="#" id="showhide">Show/Hide Reruns</a></span>

并试图实现这样的功能:

$('#showhide').click(function(e){
$('#library').toggle();
    return false;
    })
});

但是我遇到了问题。库小部件在页面加载时仍然可见,其 CSS 在元素检查器中也不会更改。

如果有帮助,我在这里设置了一个小提琴:http://jsfiddle.net/GecwN/

【问题讨论】:

  • 你不能做一个更简单的小提琴吗?我的意思是没有闪光灯,只有必要的元素
  • 也使用 $.hide() 代替 css,它减少了头痛
  • 我不知道这是你的问题,但你的小提琴最后有一个额外的}),并且点击处理程序在匿名函数之外。

标签: jquery jquery-ui iframe visible


【解决方案1】:

我把你的开关改成了这个

    $('#showhide').click(function (e) {
        $('#library').toggleClass("library");
     })

我将可见性属性更改为

   display: none;

我还将您的 css 从 #library 更改为 .library 以切换类

但是我认为在完成这些事情之后最重要的是,我所做的是将您的 .click 处理程序放入 document.ready 中,只需在它之前取出 })。里面多了一个。效果很好

http://jsfiddle.net/SteveRobertson/GecwN/11/

【讨论】:

    【解决方案2】:

    试试这个:

    #library {
        display: none;
    }
    

    【讨论】:

    • 这似乎解决了我的第一个问题,但我不确定 .toggle() 是否适用于 display: none;
    【解决方案3】:

    问题是你的 toggle() 中有这个:

    return false;
    

    删除它并在您的 CSS 中使用 display: none 作为 TGH recommended

    示例working fiddle here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-03
      • 1970-01-01
      • 2014-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-06
      • 2012-05-26
      相关资源
      最近更新 更多