如何让Jquery代码只选择主div(.post)? 它也会影响它的孩子,内部div。
我用这个:
$(document).ready(function() {
$( ".post" )
.mouseover(function() {
$(this).animate({
height: 180,
width: 160
}, 200, function() {
// Animation complete.
});
})
.mouseout(function() {
$(this).animate({
height: 150,
width: 150
}, 200, function() {
// Animation complete.
});
});
});
答案 0 :(得分:0)
切换.mouseover()
和.mouseout()
.mouseenter()
和.mouseleave()
:
$(document).ready(function () {
$(".post")
.mouseenter(function () {
$(this).animate({
height: 180,
width: 160
}, 200, function () {
// Animation complete.
});
})
.mouseleave(function () {
$(this).animate({
height: 150,
width: 150
}, 200, function () {
// Animation complete.
});
});
});
<强> jsFiddle example 强>
来自文档:
mouseenter / mouseleave事件的处理方式与mouseover / mouseout不同 事件冒泡。 mouseenter / mouseleave事件仅触发其处理程序 鼠标进入/离开它所绑定的元素,而不是后代。
另请注意,您还可以使用调用mouseenter和mouseleave的.hover()
函数稍微缩短代码。
答案 1 :(得分:0)
mouseover
和mouseout
正在此处执行其功能。使用hover
来抵消这种影响。
<强> WORKING DEMO 强>:
$(document).ready(function () {
$('.post').hover(function () {
$(this).animate({
height: 180,
width: 160
}, 200, function () {
// Animation complete.
});
}, function () {
$(this).animate({
height: 150,
width: 150
}, 200, function () {
// Animation complete.
});
});
});
答案 2 :(得分:0)
解决方案:使用mouseenter
和mouseleave
**原因:*正如jQuery doc所述,mouseover
和mouseout
指向子元素:
当指针移动到子元素时,
mouseover
会触发,而mouseenter
仅在指针移动到绑定元素时触发。
mouseout
和mouseleave
也是如此。