无法获得基本的jQuery逻辑

时间:2016-06-05 20:46:10

标签: javascript jquery twitter-bootstrap

我的HTML中有这个按钮,基本上会折叠/展开#leftmenu并且它正常工作:<a id="menutoggle" data-toggle="collapse" data-target="#leftmenu">Placeholder</a>

我想完成这个:

  1. 如果加载页面时显示#leftmenu,则添加 top:-10px属性#contentfix
  2. 点击展开按钮后展开#leftmenu,然后从top:-10px移除#contentfix媒体资源。
  3. 点击展开按钮展开#leftmenu,然后将top:-10px媒体资源添加到#contentfix
  4. 每当top:-10px可见时,我基本上都希望#contentfix属性#leftmenu属性,隐藏时top:0pxif ($("#leftmenu").is(":visible")) { $('#contentfix').css('top','-10px'); var visible = 1; } $('#menutoggle').click(function(e) { $('html, body').animate({ scrollTop: 0 }, 'fast'); if (visible == 0){ $('#contentfix').css('top','-10px'); visible = 1; } else { $('#contentfix').css('top','0px'); visible = 0; } }); 无论页面是否默认显示/隐藏,或者您通过单击折叠按钮更改了它。

    这是我目前的尝试:

    Sub qwerty()
        My_range = Cells(4, 6).Value
        Range(My_range).EntireColumn.Hidden = True
    End Sub
    

1 个答案:

答案 0 :(得分:1)

请务必使用$(document).ready()。此外,您可以缓存jQuery对象,而不需要设置可见变量并将相同的功能写入两次。

$(document).ready(function(){
    var contentFix = $('#contentfix');
    var leftMenu = $("#leftmenu");
    var menuToggle = $('#menutoggle');
    var htmlBody = $('html, body');
    var toggle = function(){
        htmlBody.animate({ scrollTop: 0 }, 'fast');
        if (leftMenu.is(":visible")) {
            contentFix.css('top','-10px');
        } else {
            contentFix.css('top','0px');
        }
    }
    menuToggle.on('click', function() {
        toggle();
    });
});