2015-07-11 60 views
0

只是一个简短的问题,可能是一些语法错误,但我似乎无法找到它。我有一个函数使用一个id来动画div的高度和宽度。我也试图fadeIn()使用$(this).find('p')的子段落。这可能吗?我环顾四周,尝试了不同的语法,如children()。以下是有关的代码:jquery fadein子问题

[JS]

$('#menu_item_1').hover(function() { 
    $(this).filter(':not(:animated)').animate({ 
     width: "300px", 
     height: "255px", 
     marginTop: "-100px", 
     marginLeft: "-100px" 
    }); 

    $(this).find('p').fadeIn(); 

}, function() { 
    $(this).animate({ 
     width: "200px", 
     height: "155px", 
     marginTop: "0", 
     marginLeft: "0" 
    }); 
}); 

[HTML]

<div class="menuItem" id="menu_item_1"> 
     <h5>Home</h5> 
     <p>Shows this page</p> 
</div> 

此外,的jsfiddle证明问题:https://jsfiddle.net/w0uu5t7b/

回答

2

这里是demo

删除opacity:0并将其设为display:none

$(this).find('p').fadeIn();是指这个悬停功能,而不是jQuery。

所以它更好地存储jQuery参考为var that = this并将其用作悬停函数中的闭包。

因此,在鼠标输入你做$(that).find('p').fadeIn();和鼠标离开你做$(that).find('p').fadeIn();尽可能简单,因为它可以得到。

P.S阅读关于JavaScript关闭的更多信息:P

+0

哇。看,我知道这很简单。我会解释;我之前尝试使用不透明度动画,但认为在段落中淡入淡出可能更容易。但我没有改变不透明度。非常愚蠢我想,但谢谢你澄清。 – YSbakker

+0

太棒了!请接受答案,因为您的查询得到了答案;) – Ajey

+0

哈哈有一个等待12分钟的时间,这已经快结束了。 – YSbakker