使用 JS 时,导航链接未绑定到优先级菜单中的“更多”选项响应式标题中的响应宽度

Navigation links not binding into "More" option in Priority Menu responsive width in header while using JS

提问人:v swathi 提问时间:8/10/2023 最后编辑:XMehdi01v swathi 更新时间:8/11/2023 访问量:23

问:

使用 JS 时,当标题中没有响应宽度并且 JQuery 代码工作正常但 JS 代码不起作用时,菜单项不会绑定到“更多”中。请给我解决方案。

JQuery 代码工作正常。这是 JQuery 代码。需要JS中的解决方案。

$(文档).ready(函数() {

    function calcWidth() {
    var navwidth = 0;
    var morewidth = $('#SB-smartMenuList .SB-moreHeaderPages').outerWidth(true);
    $('#SB-smartMenuList > li:not(.SB-moreHeaderPages)').each(function() {
        navwidth += $(this).outerWidth( true );
    });
    
    var availablespace = $('.SB-smartMenu').width() - morewidth;
  
    if (navwidth > availablespace) {
        var lastItem = $('#SB-smartMenuList > li:not(.SB-moreHeaderPages)').last();
        lastItem.attr('data-width', lastItem.outerWidth(true));
        lastItem.prependTo($('#SB-smartMenuList .SB-moreHeaderPages ul'));
        calcWidth();
    } else {
        
    var firstMoreElement = $('#SB-smartMenuList li.SB-moreHeaderPages li').first();
    if (navwidth + firstMoreElement.data('width') < availablespace) {
        firstMoreElement.insertBefore($('#SB-smartMenuList .SB-moreHeaderPages'));
    }
}
if ($('.SB-moreHeaderPages li').length > 0) {
    $('.SB-moreHeaderPages').css('display','block');
    } else {
        $('.SB-moreHeaderPages').css('display','none');
    }
}
$(window).on('load resize',function(){
    calcWidth();
});
$(".SB-dropdownMore").hide();
$('.SB-moreHeaderPages').hover(function(){
    $('.SB-dropdownMore').show();
    }, function(){
    $('.SB-dropdownMore').hide();
    });
});
JavaScript jQuery 函数

评论

0赞 CBroe 8/10/2023
如果您在尝试将其重写为纯 JavaScript 时遇到问题 - 请提供您尝试过的适当的最小可重现示例

答: 暂无答案