【问题标题】:.toggleClass not working?.toggleClass 不工作?
【发布时间】:2015-01-11 12:09:09
【问题描述】:

我正在尝试在使用 Jquery 和引导可见/隐藏类扩展最小化导航侧边栏时显示页脚类。切换功能适用于另外两个元素和另一个具有相同 ID (!) 的元素,但不适用于 ID 为“#filler”的页脚类:S

Staging [将屏幕缩小到 768 像素以下以查看问题]:http://themidastouch.github.io/greenroom/

我的代码:

$(document).ready(function(){/* off-canvas sidebar toggle */

$('[data-toggle=offcanvas]').click(function() {
$(this).toggleClass('visible-xs text-center');
$(this).find('i').toggleClass('glyphicon-chevron-right glyphicon-chevron-left');
$('.row-offcanvas').toggleClass('active');
$('#lg-menu').toggleClass('hidden-xs').toggleClass('visible-xs');
$('#xs-menu').toggleClass('visible-xs').toggleClass('hidden-xs');
$('#filler').toggleClass('hidden-xs').toggleClass('visible-xs');
$('#btnShow').toggle();
});
});

HTML:

  •                 <ul class="nav hidden-xs" id="lg-menu">
                        <li class="active">
                            <a href="#" class="three-d">
                                <span style="color: #27ae60;"><i class="fa fa-home fa-sm"></i>Home</span>
                                <span aria-hidden="true" class="three-d-box">
            <span class="front"><i class="fa fa-home fa-sm"></i>Home</span>
                                <span class="back"><i class="fa fa-home fa-sm"></i>Home</span>
                                </span>
                            </a>
                        </li>
                        <li>
                            <a href="#" class="three-d">
                                                        <span style="color: #27ae60;"><i class="fa fa-newspaper-o fa-sm"></i>Blog</span>
                                <span aria-hidden="true" class="three-d-box">
            <span class="front"><i class="fa fa-newspaper-o fa-sm"></i>Blog</span>
                                <span class="back"><i class="fa fa-newspaper-o fa-sm"></i>Blog</span>
                                </span>
                            </a>
                        </li>
                        <li>
                            <a href="#" class="three-d">
                                <span style="color: #27ae60;"><i class="fa fa-info fa-sm"></i>Contact</span>
                                <span aria-hidden="true" class="three-d-box">
            <span class="front"><i class="fa fa-info fa-sm"></i>Contact</span>
                                <span class="back"><i class="fa fa-info fa-sm"></i>Contact</span>
                                </span>
                            </a>
                        </li>
                    </ul>
                    <footer class="text-center hidden-xs" id="filler">
                        <ul class="social">
                            <li><a href="#"><i class="fa fa-facebook-square fa-lg "></i></a>
                            </li>
                            <li><a href="#"><i class="fa fa-instagram fa-lg "></i></a>
                            </li>
                            <li><a href="#"><i class="fa fa-twitter-square fa-lg "></i></a>
                            </li>
                            <li><a href="#"><i class="fa fa-youtube-square fa-lg "></i></a>
                            </li>
                        </ul>
                        &copy; Greenroom 2015</footer>
    
                    <!-- tiny only nav-->
                    <ul class="nav visible-xs" id="xs-menu">
                        <li><a href="#" class="three-d text-center">
                                <span style="color: #27ae60;"><i class="fa fa-home fa-sm"></i></span>
                                <span aria-hidden="true" class="three-d-box">
            <span class="front"><i class="fa fa-home fa-sm"></i></span>
                                <span class="back"><i class="fa fa-home fa-sm"></i></span>
                                </span>
                            </a>
                            </li>
                            <li><a href="#" class="three-d text-center">
                                                        <span style="color: #27ae60;"><i class="fa fa-newspaper-o fa-sm"></i></span>
                                <span aria-hidden="true" class="three-d-box">
            <span class="front"><i class="fa fa-newspaper-o fa-sm"></i></span>
                                <span class="back"><i class="fa fa-newspaper-o fa-sm"></i></span>
                                </span>
                            </a>
                            </li>
                            <li><a href="#" class="three-d text-center">
                                <span style="color: #27ae60;"><i class="fa fa-info fa-sm"></i></span>
                                <span aria-hidden="true" class="three-d-box">
            <span class="front"><i class="fa fa-info fa-sm"></i></span>
                                <span class="back"><i class="fa fa-info fa-sm"></i></span>
                                </span>
                            </a>
                            </li>
                    </ul>
    
                </div>
    

    【问题讨论】:

      标签: jquery html twitter-bootstrap frontend


      【解决方案1】:

      尝试将页脚的 ID 从填充符更改为页脚。然后确保在你的js中也改变它。 &lt;footer class="text-center hidden-xs" id="footer"&gt;

      $('#footer').toggleClass('hidden-xs').toggleClass('visible-xs');
      

      很确定这就是您想要实现的目标。看看我的小提琴看看 http://jsfiddle.net/a4mqw9ox/

      尽管如此,您仍然需要为您的填充 id 提供您的 js

      【讨论】:

      • 我不敢相信这有效:/ f@#$@#??这是否意味着 js 仅适用于具有#filler id 的一个元素?现在对js很生气。
      • 不要让我从 js 和冗余问题开始 :) 很高兴它对你有用。
      • 问题中的 HTML 仅显示一个 #filler。这是id。它应该是独一无二的。给定id 的元素不应超过一个。如果您希望多个元素具有相同的id,请改用class
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-29
      • 2018-04-01
      • 1970-01-01
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多