javascript - 如何在特定事件后停止 window.scroll()

标签 javascript jquery twitter-bootstrap

我正在使用 bootstrap Collapse() 脚本来展开/折叠 div。我想在 .hidden() 上附加 window.scroll() 方法并在 .shown() 中停止 window.scroll() 。但 window.scroll() 总是附加到该 div 上。

我的代码片段

    $('body').delegate('#div1', 'shown', function() {
    $('#label').children('i').removeClass('icon-plus-sign');
    $('#label').children('i').addClass('icon-minus-sign');
    $(window).scroll(function(e) {
        e.preventDefault();
        e.stopPropagation();
    });
});

$('body').delegate('#div1', 'hidden', function() {
    $('#label').children('i').removeClass('icon-minus-sign');
    $('#label').children('i').addClass('icon-plus-sign');
    $(window).scroll(function() {
        var scrollTop = $(window).scrollTop();
        $('#content').stop().animate({
            "marginTop": (scrollTop + '40px;' : (scrollTop) + "px" }, "slow");
    });
})

最佳答案

$('body').delegate('#div1', 'shown', function () {
    $('#label').children('i').removeClass('icon-plus-sign');
    $('#label').children('i').addClass('icon-minus-sign');
    $(window).off('scroll');
});

$('body').delegate('#div1', 'hidden', function () {
    $('#label').children('i').removeClass('icon-minus-sign');
    $('#label').children('i').addClass('icon-plus-sign');
    $(window).on('scroll', function () {
        var scrollTop = $(window).scrollTop();
        $('#content').stop().animate({
            "marginTop": (scrollTop + '40px;': (scrollTop) + "px"
            },
            "slow");
        });
    })

注意:您应该使用 .on() 而不是 delegate

关于javascript - 如何在特定事件后停止 window.scroll(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17788339/

相关文章:

javascript - 如何使用 jQuery 将 TypeKit 字体加载到 CKEditor 实例中

javascript - 为什么 JavaScript 中的 parseInt 和 isNaN 行为不一致?

jquery - 更改 morris.js 中默认突出显示的段

javascript - 如何制作具有缩放所选图像和其他分散效果的图库

css - Bootstrap 网格 - 为什么我的列会折叠?

jquery - Bootstrap 3 + Quicksand.js 可过滤组合 - 图像在转换过程中调整大小

javascript - 如何平滑 jQuery 过滤系统的动画

javascript - Nodejs 后面写的连接套接字如何保存?

javascript - 添加一些缓动 jQuery

javascript - 如何从服务器端在模态 Bootstrap 中进行验证?