在Jquery中有一种方法可以阻止mouseout()
函数停止激活,当你超过某个div
它也不是孩子时。我的HTML代码。
<div class="featured">
<div class="featured_top">
<p><span class="theme">Theme</span> Transparent </p>
</div>
<div class="pic" style="background: blue">
<!-- image -->
</div>
<div class="featured_des">
<p> this is awesome theme </p>
</div>
</div>
我的js(jQuery)
$(document).ready(function(){
$(".pic").mouseover(function(){
$(this).animate({
width: 0
});
});
$(".pic").mouseout(function(){
$(this).animate({
width: 214
});
});
});
所以我的问题是否可以阻止mouseout()
函数在featured_des
div时激活。 atm它动画.pic
类的宽度可以正常工作,但当它完成animate
时,光标位于featured_des
上方,激活mouseout
并再次隐藏描述
示例:: http://www.grubber.co.nz/developer/_social_development/market.html
答案 0 :(得分:1)
在pic
和featured_des
附近添加包装。
<div class="picwrapper">
<div class="pic" style="background: blue">
<!-- image -->
</div>
<div class="featured_des">
<p> this is awesome theme </p>
</div>
</div>
然后JS:
$('.picwrapper').hover(function() {
$(this).find('.pic').animate({ width: 0 });
}, function() {
$(this).find('.pic').animate({ width: 214 });
});
答案 1 :(得分:0)
'mouseout'将触发。无论是什么原因导致它离开。在您的情况下,重新调整大小会使图片太小而鼠标无法再覆盖它。
修改您的HTML,将功能描述和Pic包含在一个被归类为“容器”的div中,这样您悬停的对象就不会消失,导致鼠标移除。
<div class="featured">
<div class="featured_top">
<p><span class="theme">Theme</span> Transparent </p>
</div>
<div class="container">
<div class="pic" style="background: blue">
<!-- image -->
</div>
<div class="featured_des">
<p> this is awesome theme </p>
</div>
</div>
</div>
和你的jQuery
$(document).ready(function(){
$(".container").mouseover(function(){
$(this).find('.pic').animate({
width: 0
});
});
$(".container").mouseout(function(){
$(this).find('.pic').animate({
width: 214
});
});
});
答案 2 :(得分:0)
我认为您正在寻找mouseenter
和mouseleave
所以事件不会冒出来:
$(document).ready(function() {
$(".pic").width($(".pic .container img").width());
$(".pic").height($(".pic .container img").height());
$(".pic").mouseenter(function() {
$(".pic .container").animate({
width: 0
}, function() { $(".pic .container img").hide(); });
});
$(".pic").mouseleave(function() {
$(".pic .container img").show();
$(".pic .container").animate({
width: 214
});
});
});