如前所述,第一个处理程序末尾缺少右括号。
在您的处理程序中,您应该使用$(this)
对触发事件的元素的引用,而不是文档的所有 div:
$(document.ready(function(){
$('div').mouseover(function(){
$(this).slideDown('slow');
});
$('div').mouseout(function(){
$(this).slideUp('slow');
});
});
我还建议您处理比div
... 更具体的选择器,这样一个令人困惑的选择器会将您的页面减少到“无法更改任何内容”状态。使用这样的标记:
<div class="hover-effect">
<!-- content -->
</div>
你可以有这样的东西:
$('.hover-effect').mouseover(/* ... */);
$('.hover-effect').mouseout(/* ... */);
更新:
根据您提供的 jsfiddle,您基本上是在尝试处理未显示的 div 上的 mouseover 事件。您的代码完全按预期工作。如果你打棒球,你肯定会有一段史诗般的时间来尝试击球,而它还没有被抛出。
首先,您需要一个始终具有一定宽度和高度的容器。确保这一点的一种方法是为容器设置顶部填充。在该容器内,您的滑块可以随意滑动,而不会达到“无”状态。为了获得自由指针效果的好处,我假设它旨在显示为链接。
尝试这个:
HTML
<a class="slider-container" href="#">
<div class="slider"></div>
</a>
CSS
.slider-container {
display:block;
width:100px;
padding-top:25px;
background-color:#000000;
}
.slider {
width: 100px;
height: 100px;
background-color:#000000;
display:none;
}
查询
$(document).ready(function(){
var $slider_container=$('.slider-container');
$slider_container.mouseover(function(){
$('.slider',this).stop().slideDown('slow');
});
$slider_container.mouseout(function(){
$('.slider',this).stop().slideUp("slow");
});
});
看看这个工作的FIDDLE