-5

我有一个嵌套 div,我想在鼠标悬停时隐藏它,并在鼠标移出时显示。

但是,当我尝试这样做时,事件会不断触发。

代码很长,如需更详细,请查看小提琴@ http://jsfiddle.net/jWbZy/16/

4

2 回答 2

1

这是一种方法:

在您的轮播面板周围添加一个包装器(我猜这就是 cp 的意思):

<div class="cpWrapper">
    <div class="cp">
        <div class="prev"></div>
        <div class="next"></div>
    </div>
</div>

使用以下样式:

.cpWrapper {
    position: absolute;
    width: 100%; 
    height: 100%; 
}

并隐藏/显示其子元素:

$('.slideshow .cpWrapper').mouseover(function() {
    $(this).find('.cp').hide();
});
// ...

这里的工作示例:http: //jsfiddle.net/Kxvuk/

于 2011-08-23T13:19:33.757 回答
1

这是因为当您隐藏元素时,mouseout 事件也会触发,因为光标不再位于元素上。相反,将事件添加到父元素以获得所需的效果:

$('.slideshow')
    .mouseover(function(){
        $(this).find('.cp').hide();
    })
    .mouseout(function(){
        $(this).find('.cp').show();
    });
于 2011-08-23T10:52:36.163 回答