我有一个悬停事件,在悬停时,我需要设置subnav的大小,根据它的宽度为它添加一个类,然后显示subnav。麻烦的是,就像现在一样,它显示了第一个悬停时具有原始大小的subnav,然后当我再次悬停它时,它已经调整了subnav的大小。
那么如何在上一次完成之后将3个事物链接起来:
$(this).children('。sub-menu-div')。css('visibility','visible');
$('.dir').hover(
function(){
if($(this).children('.sub-menu-div').length>0){
var subnav=$(this).children('.sub-menu-div');
setSubMenuPos(subnav);
setSubNavWidth2(subnav);
$(this).children('.sub-menu-div').css('visibility', 'visible');
}
$(this).children('.top-level-link').addClass('hoverstyle');
},
function(){
$(this).children('.sub-menu-div').css('visibility', 'hidden');
$(this).css('background-color','transparent')
$(this).children('.top-level-link').removeClass('hoverstyle');
}
);
function setSubNavWidth2(element){
var sub_nav_width = various calculations that set sub nav width
$(element).width(sub_nav_width );
}
function setSubMenuPos(element){
//set posiiton of menu
var position = $(element).parent().position();
var xPos = position.left;
var width = $(element).width();
var parentWidth = $(element).parent().width();
var newXpos = xPos + parentWidth;
if(xPos + width > 950 ){
$(element).removeClass('left');
$(element).addClass('right');
}
}