【问题标题】:OnClick event not functioning to increase/decrease top marginOnClick 事件无法增加/减少上边距
【发布时间】:2010-08-18 11:19:44
【问题描述】:

我有一个 DIV,我试图在单击使用 jQuery 的触发链接时调整上边距。我的代码如下。

问题是,这只适用于一种方式 - 将负上边距降低到 0。但在第二次点击时它不会将它增加到 -200px。

有人知道为什么吗?!

$('.gh-gallink').click(
    function() {
        $('.gallery_container').animate({ marginTop: "0px" }, 2000)
    },
    function() {
        $('.gallery_container').animate({ marginTop: "-200px" }, 2000);
    }
);

【问题讨论】:

    标签: jquery click margin


    【解决方案1】:

    您需要.toggle() 而不是.click(),以便在单击时循环功能,如下所示:

    $('.gh-gallink').toggle(
      function() {
        $('.gallery_container').animate({ marginTop: "0px" }, 2000)
      },
      function() {
        $('.gallery_container').animate({ marginTop: "-200px" }, 2000);
      }
    );
    

    【讨论】:

    • 嗨,尼克,感谢您的回复 - 我已经尝试过了,并且刚刚再次复制了您的代码以确保它不起作用。第一次单击甚至不适用于切换。我很混乱! :(
    • 这可以将上边距降低到 0px: $('.gh-gallink').click(function() { $('.gallery_container').animate({ marginTop: " 0px" }, 2000, function() { }); 我似乎无法通过点击或切换来让它向后工作
    • @Phil - 看看这里,你当前的代码有什么不同? jsfiddle.net/nick_craver/xVkpM
    • @Nick - 我用我的代码更新了那个链接上的代码,结果它坏了!再次,不知道为什么。我只是看不出有什么问题。你所拥有的唯一缺少的是一个容器。这是必需的,因为生成画廊的插件只有在页面加载时才有效(通常我只会显示:没有隐藏的 div 并使用 toggle() 来显示/隐藏它)但这次我不能,因为这会停止画廊加载。因此负上边距和溢出:隐藏容器
    • @Phil - 这是因为 div 在链接的顶部,如果你给它一个背景,它会变得更加清晰,就像这样:jsfiddle.net/nick_craver/D7qLr 我想这就是你所追求的: jsfiddle.net/nick_craver/D7qLr/1
    猜你喜欢
    • 1970-01-01
    • 2022-01-25
    • 2017-06-03
    • 2020-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 2012-11-01
    相关资源
    最近更新 更多