jquery语句的理解
$('.cul>li').each(function(){$(this).hover(function(){$(this).css("background-color",...
$('.cul > li').each(function(){
$(this).hover(
function(){
$(this).css("background-color","yellow");
$(this).find('ul:eq(0)').show();
},
function(){
$(this).find('ul:eq(0)').hide();
}
);
});
这是一个鼠标经过显示,移开隐藏的代码,但是有一个鼠标移快了就不能隐藏的BUG
该怎样解决呢?hover事件下有两个并列的函数是怎样执行的?怎么理解呢?
$(this).hover(
function(){}
function(){}
)
意思就是当鼠标经过当前区块就会执行下面两个函数吗?
如果是这样的话,那上面那段代码意思不就是先执行显示然后再执行隐藏吗?
但实际效果却是移动到当前区块显示,移开后又隐藏,为什么会这样呢? 展开
$(this).hover(
function(){
$(this).css("background-color","yellow");
$(this).find('ul:eq(0)').show();
},
function(){
$(this).find('ul:eq(0)').hide();
}
);
});
这是一个鼠标经过显示,移开隐藏的代码,但是有一个鼠标移快了就不能隐藏的BUG
该怎样解决呢?hover事件下有两个并列的函数是怎样执行的?怎么理解呢?
$(this).hover(
function(){}
function(){}
)
意思就是当鼠标经过当前区块就会执行下面两个函数吗?
如果是这样的话,那上面那段代码意思不就是先执行显示然后再执行隐藏吗?
但实际效果却是移动到当前区块显示,移开后又隐藏,为什么会这样呢? 展开
展开全部
hover事件在CSS中的就是当鼠标悬停在结点上时,给结点的样式,当鼠标移开后,样式还会还原回去。这个在超链接结点上用的比较多,目前IE7以下版本只支持超链接中href属性不为空的结点应用此伪类。
jquery就是模拟的这样一个过程,当鼠标移动到结点上时,触发hover的第一个参数函数;鼠标从这个结点上移开时,触发第二个函数。
举例来说,假定获取页面中某个结点为node,则node.hover(fn1,fn2)实质上就是给node绑定了两个事件,node.onmouseover = fn1、node.onmouseout = fn2。
jquery中hover函数的源码:
hover: function( fnOver, fnOut ) {
return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
}
显然,当你仅仅给hover一个参数时,鼠标经过和鼠标移开都会执行这个参数函数,也就是这个函数会执行两次。
____________________________________
第一个函数是在鼠标移动到该区域时触发,第二个函数则在鼠标移开该区域触发。
jquery就是模拟的这样一个过程,当鼠标移动到结点上时,触发hover的第一个参数函数;鼠标从这个结点上移开时,触发第二个函数。
举例来说,假定获取页面中某个结点为node,则node.hover(fn1,fn2)实质上就是给node绑定了两个事件,node.onmouseover = fn1、node.onmouseout = fn2。
jquery中hover函数的源码:
hover: function( fnOver, fnOut ) {
return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
}
显然,当你仅仅给hover一个参数时,鼠标经过和鼠标移开都会执行这个参数函数,也就是这个函数会执行两次。
____________________________________
第一个函数是在鼠标移动到该区域时触发,第二个函数则在鼠标移开该区域触发。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询