当一个div悬停在上面时,我正在显示一个标题,我想在鼠标停留在div上时禁用该效果....所以用户必须在标题再次显示之前鼠标关闭。我可以用unbind来解决这个问题,但问题是它会杀死鼠标 功能:
$('.lowerFrontStripRow img').hover(
function(){
$('.orbit-caption-bottom#bottomThumb'+$(this).data("thumbid")).slideDown();
$('.lowerFrontStripRow img').unbind();
},
function(){
$('.lowerFrontStripRow img').bind(hover);
$('.orbit-caption-bottom').slideUp();
}
);
如何在鼠标关闭动作之前禁用?
谢谢,
艾伦。
答案 0 :(得分:0)
只有这应该起作用
$('.lowerFrontStripRow img').hover(
function(){
$('.orbit-caption-bottom#bottomThumb'+$(this).data("thumbid")).slideDown();
},
function(){
$('.orbit-caption-bottom').slideUp();
}
);
答案 1 :(得分:0)
.unbind()
的第一个参数是eventType
所以:
$('.lowerFrontStripRow img').unbind('hover');
是取消绑定功能的正确语法。
顺便说一下,你可能要改变问题的整个方法。
答案 2 :(得分:0)
您似乎想要做的是:
显示是否:
如果满足以下任何条件,则禁用:
首先,hover(...)
是.on( 'mouseover' )
和.on( 'mouseout' )
的简写;它实际上绑定了这两个事件,你也必须解除这两个事件的绑定。您似乎还遇到多次调用鼠标悬停功能的问题?为什么不在元素上存储一些信息来防止这种情况呢?
$('.lowerFrontStripRow img').on( 'mouseover', function() {
if( $(this).data( 'displaying' ) != 1 ) {
$(this).data( 'displaying', 1 );
$('.orbit-caption-bottom'+$(this).data("thumbid")).slideDown();
setTimeout( function() { $('.orbit-caption-bottom').slideUp(); }, 3000 );
}
} ).on( 'mouseout', function() {
$(this).data( 'displaying', 0 );
$('.orbit-caption-bottom'+$(this).data("thumbid")).slideUp();
} );