Safari在页面加载时未运行Javascript函数

时间:2015-09-17 14:29:32

标签: javascript jquery css safari

所以我试图为每个菜单项创建一个动态生成填充(左和右)的菜单,这样如果用户调整浏览器大小,那么菜单项列表就不会溢出到第二行。下面是我为此编写的代码。并且代码工作得很好但是并非所有内容都能在Safari中顺利运行。在Safari中加载页面时,脚本无效。只有在我开始调整浏览器大小后,脚本才会运行并更改填充宽度。这不会发生在任何其他浏览器上。

//autowidth for menu items
function setMenuWidth() {

    var fullWidth = $('.main-navigation').width();
    var numElements = $('.main-navigation > ul > li > a').length;
    var contentWidth = 0, differenceWidth, paddingWidth;

    $('.main-navigation > ul > li > a').each(function(){
        contentWidth += $(this).width();
    });

    differenceWidth = fullWidth - contentWidth;
    paddingWidth = (differenceWidth/numElements)/2;

    $('.main-navigation > ul > li > a').css('padding-left', paddingWidth + 'px');
    $('.main-navigation > ul > li > a').css('padding-right', paddingWidth + 'px');

}
setMenuWidth();

正如您所看到的,我创建了该函数,然后立即调用它。 然后为了让它在调整大小时运行,我调用了一个resize事件。

$(window).resize(function(){
    scrollToResults();
    setMenuWidth();
});

我希望我尽可能地清楚。有没有人遇到过这个问题?提前谢谢!

0 个答案:

没有答案