如何在jquery中实现mouseleave
How to implement mouseleave in jquery
我有一个jquery滑动的小问题。在悬停(鼠标悬停)上,我需要我的导航列表项通过向下滑动来显示其内容,并且在鼠标移出时它应该向上滑动。
HTML:<ul class="nav nav-tabs nav-stacked">
<li id = "mousehover">
<a style="background-color:#f78144; color: #000; text-align: center;" href="#">Time Table
</a>
</li>
</ul>
<div id = "hovercontent">
Contents 1
</div>
Javascript: <script type="text/javascript">
$(document).ready(function(){
$("#mousehover").mouseenter(function(){
$("#hovercontent").slideDown("slow");
});
$("#hovercontent").mouseleave(function(){
$(this).slideUp("slow");
});
});
</script>
这里的问题是,当我悬停在列表上div滑下来,但只有当我悬停在div上并离开导航后,div才向上滑动。我需要div滑上,即使我鼠标离开列表,没有进入div。这怎么能做到呢?
最好使用mouseover
和mouseout
。
$("#hovercontent").bind("mouseout", function() {
$(this).slideUp("slow");
});
试着这样把它放到doc ready
中:http://jsfiddle.net/ptVbs/
$("#mousehover").hover(function() {
$("#hovercontent").slideDown("slow");
}, function() {
if (!$("#hovercontent").hover()) {
$("#hovercontent").slideUp("slow");
}
});
$("#hovercontent").mouseleave(function() {
$(this).slideUp("slow");
});
查看http://www.quirksmode.org/js/events_mouse.html。在事件处理程序中,检查此处描述的relatedTarget。在事件处理程序中使用console.log来跟踪正在发生的事情。不幸的是,如果没有您使用的类的CSS,我无法进一步提供帮助……也许您可以在http://jsbin.com/?
try this
$(document).ready(function(){
$("#mousehover").mouseover(function(){
$("#hovercontent").slideDown("slow");
});
$("#hovercontent ,#mousehover").mouseleave(function(){
$('#hovercontent').slideUp("slow");
});
});
在'hover'
上尝试event.type
您在#mousehover
内容上附加一个"悬停"事件处理程序,并且使用event.type
,您可以看到正在进行的事件类型。使用事件'hover'
,您可以获得mouseenter和mouseleave
$(document).ready(function(){
$('#mousehover').on('hover',function(event){
switch(event.type){
case 'mouseenter': $("#hovercontent").slideDown("slow");
break;
case 'mouseleave': $("#hovercontent").slideUp("slow");
break;
}
});
});
我建议使用class:
HTML:<ul class="nav nav-tabs nav-stacked">
<li id = "mousehover" class="menu1">
<a style="background-color:#f78144;color:#000;text-align:center;" href="#">Time Table</a>
</li>
</ul>
<div id = "hovercontent" class="menu1">
Contents 1
</div>
JS:
<script>
$(document).ready(function(){
$("#mousehover").mouseenter(function(){
$("#hovercontent").slideDown("slow");
});
$(".menu1").mouseout(function(){
$("#hovercontent").slideUp("slow");
});
});
</script>
相关文章:
- 如何使用动画实现纸张推车
- 客户端服务器REST API captcha实现
- 如何实现此布局
- Meteor忘记了密码的实现
- 使用Native Sockets在Android中实现WebSockets
- 在样板文件中实现Ajax
- instanceof是如何在JavaScript中实现的
- 如何正确实现Jquery多选小部件
- 实现一个建立在google.com之上的自定义搜索引擎
- 多个组件是如何实现的
- window.location使用jquery mobile实现chrome跳转
- 如何在OpenERP中实现网络摄像头
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- javascript加密实现,包括可信否认
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- 如何让程序员在javascript中实现正确的回调
- 如何使用自定义辅助对象(handler)实现嵌套的每个循环
- AngularJS智能表全局配置实现
- Expressjs/AngularJS:实现req-flash后出错
- 如何在jquery中实现mouseleave