【问题标题】:Javascript to show/hide div of render显示/隐藏渲染的 div 的 Javascript
【发布时间】:2014-02-12 17:24:54
【问题描述】:

Ruby on Rails 3。我正在尝试获取一个按钮来显示或隐藏一个 div。

这没有返回任何错误,但没有任何反应。

<input type=button value="Show Archived Postings" onclick="showHide('oldNews');">

<div id="oldNews">
<%= render 'archive_news' %>
</div>

<script language="javascript" type="text/javascript">
function showHide(elementId) {
    if (document.getElementById) {
        var element = document.getElementById(elementId);
        if (element.style.visibility == 'visible') {
            element.style.visibility = 'hidden';
        } else if (element.style.visibility == 'hidden') {
            element.style.visibility = 'visible';
        }
    }
}
</script>

它将始终呈现我的“archive_news”。我究竟做错了什么?谢谢

【问题讨论】:

  • 放置警报或console.log并进行调试。
  • 代替可见性,试试 .display = "none"
  • @aw04 测试一下浏览器是否支持getElementById。编辑:...除非您支持earlier than IE 5.5,否则这不是必需的。你这个可怜的东西。
  • 当我点击按钮时,我的服务器没有显示任何日志。我确实尝试过 .display = "none"

标签: javascript jquery html ruby-on-rails ruby-on-rails-3


【解决方案1】:

您可以根据您的要求使用此代码。当您点击按钮时,您可以使用style 属性来隐藏和显示元素。

//this would hide when body is loaded
var element = document.getElementById('oldNews');
if(element != null){
    element.style.display = 'none';
}

//this would hide when you click on input button
function showHide(elementId) {
  var element = document.getElementById(elementId);
    if (element != null) {
        if(element.style.display != 'none'){
            element.style.display = 'none';
        }else{
            element.style.display = 'block';
        }
    }
}

【讨论】:

  • 最初加载时如何使 div .display = 'none'?
  • 你想在页面加载时让 div display none 吗?
  • 是的,我希望存档的新闻帖子开始不可见,然后点击显示和隐藏。
猜你喜欢
  • 1970-01-01
  • 2017-04-04
  • 2021-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-25
  • 2014-01-30
相关资源
最近更新 更多