记录一次mouseleave不生效的问题
$('.a').on({
mouseenter:function(){
if(!$(this).data('html')){
$(this).data('html',$(this).html());
}
$(this).html('<span>点我</span>');
},
mouseout:function(){
$(this).html($(this).data('html'));
}
});
原因分析:
因为绑定对象是a标签且内部包含span标签,不存在padding属性,鼠标进入后触发mouseenter或mouseover,由于a和span完美切合,所以会导致无法触发mouseleave或mouseout。
解决方法:
$('.a').on({
mouseenter:function(){
if(!$(this).data('html')){
$(this).data('html',$(this).html());
}
$(this).html('<span>点我</span>');
$(this).off('mouseenter');
},
mouseout:function(){
$(this).html($(this).data('html')).on('mouseenter',function(){
$(this).html('<span>点我</span>');
$(this).off('mouseenter');
});
}
});
在鼠标进入后解除mouseenter事件的绑定,鼠标离开后重新绑定mouseenter事件即可。