只是一个简短的问题,可能是一些语法错误,但我似乎无法找到它。我有一个函数,使用id动画div的高度和宽度。我还尝试使用fadeIn()
$(this).find('p')
子段落。这可能吗?我环顾四周,尝试了不同的语法,如children()
。这是有关的代码:
[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/
答案 0 :(得分:2)
删除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