悬停的最佳练习
Best practive for on a hover?
我有一个简单的函数,当你将鼠标悬停在一个元素上时,它的子元素就会出现。当用户离开(mouseout
(子元素时,我将其隐藏,我还希望在用户离开(mouseout
(触发器#tweeter
时隐藏它。我创建了一个小提琴 http://jsfiddle.net/np1cb3k0/抱歉,如果这不是很清楚,但希望你能理解我的代码!
$('#tweeter').on('mouseenter', function(e){
e.preventDefault();
$(this).find('ul').show();
});
$('.subicons').mouseleave(function(){
$(this).hide();
});
主要问题是按钮和弹出窗口之间存在分离。因此,即使ul
是#tweeter
的孩子,由于他们没有互相拥抱,因此会触发mouseout
。
我建议您在鼠标输出时使用一个小的超时。鼠标悬停时清除的超时。这将允许一些时间在弹出窗口上并防止hide()
.
像这样:
$('#tweeter').on({
mouseenter : function(e){
var $this = $(this);
clearTimeout($this.data('_timer'));
$(this).find('ul').show();
},
mouseleave : function(){
var $this = $(this);
$this.data('_timer', setTimeout(function(){
$this.find('ul').hide();
},1000))
}
});
小提琴
在mouseLeave上,您以.subicons类而不是"#tweeter"为目标,请尝试此 http://jsfiddle.net/np1cb3k0/5/
$('#tweeter').on('mouseenter', function(e){
//console.log('OOSH');
e.preventDefault();
$(this).find('ul').show();
});
$('#tweeter').mouseleave(function(){
$(this).children('ul').hide();
});
鼠标离开事件附加到子图标。首先将鼠标悬停在子图标上后,它工作正常。
相关文章:
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 有条件更新d3.js力图中节点的最佳方法
- 为react组件传递道具的最佳方式
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 让Webpack管理Quirky AMD定义的最佳方式
- 在承诺链中处理早期回报的最佳方式
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- Angularjs 1.5.x本地化最佳实践
- 处理浮点错误的最佳方法是什么
- javascript导入的最佳实践是什么
- MobileFirst:在客户端运行计时器作业-最佳选项
- 在ng重复循环中显示条件内容的最佳方式是什么
- 在phonegap中为android调用onload函数的最佳方式
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- 从数组中删除元素的最佳方法是:javascript/jquery
- 链接两个网页或网络应用程序的最佳方式
- 什么's是连接供应商js文件的最佳方式
- Express服务器中语言子域的最佳实践
- 什么's是在javascript中迭代项的最佳方式
- 悬停的最佳练习