我有一个奇怪的错误。我在顶部有一个通过CSS固定的栏。简单。但是,在此栏中打开jQuery下拉列表时会出现问题,因为当我这样做时它不会滚动。下拉菜单保持在当前位置。

因此,我尝试使用jQuery修复该问题:

$(document).ready(function () {
    var dropdownMenu = $('.dropdownMenu'),
        top = $('#topMenu').height();

    $(window).on('scroll click', function () {
        $(dropdownMenu).css('position', 'fixed');
        $(dropdownMenu).css('top', top + 7 + 'px');
    });
});


如果我打开页面顶部的下拉菜单并滚动,则可以正常工作。但是,当向下滚动并打开下拉菜单时,它会放置在所有位置,而不是我期望的位置。当我滚动时,它立即修复了它的位置。

所以我的问题是,单击后它会在错误的位置打开。不多不少。

任何想法?

最佳答案

快速而肮脏的hack:

$(function() {
    WCF.Dropdown.init();

$('.dropdownToggle').click(reposition);

$(window).on('scroll click', reposition);
});

function reposition() {
    var dropdownMenu = $('.dropdownMenu'),
        top = $('#topMenu').height();
    setTimeout(function() {
        $(dropdownMenu).css('position', 'fixed');
        $(dropdownMenu).css('top', top + 7 + 'px');
    }, 10);
}

10-06 07:33