隐藏或显示 div,悬停时销毁功能
hide or show div, destroy function on hover
我正在尝试取消绑定悬停事件的特定功能。
div 会在页面加载时显示并在 5 秒后淡出,除非 div 悬停在上面。
函数怎么没有被破坏?我试过:.off, destroy
代码:
function fadeOutshowBox (){
$('#showBox').delay(5000).fadeOut();
}
fadeOutshowBox ();
$('#showBox').hover (function(){
$(this).unbind(fadeOutshowBox);
});
感谢大家的帮助。
你可以试试
$('#showBox').hover (function(){
$(this).fadeToggle();
});
你可以看看https://api.jquery.com/unbind/
解除绑定使用解除绑定事件而不是解除绑定函数
fadeOutshowBox 完全没有绑定。解除绑定它不会做任何事情。
这个怎么样:
定义函数 fadeOutshowBox,它执行淡出(没有延迟),然后在 setTimeout(或延迟)后调用该函数。同时,如果用户悬停,可以重新定义 fadeOutshowBox 什么都不做。
function fadeOutshowBox() {
$('#showBox').fadeOut();
}
setTimeout(fadeOutshowBox,5000);
$('#showBox').hover (function(){
fadeOutshowBox = function(){};
});
我还没有测试过,但我不明白为什么它不起作用。
您不能取消延迟功能,您应该改用setTimeout https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout
如果我没理解错的话,您只想为 div 设置动画,以防它没有悬停 5 秒。
在那种情况下,这应该可以解决问题:
function fadeOutshowBox (){
return setTimeout(function(){
$('#showBox').fadeOut();
}, 5000);
}
var handle = fadeOutshowBox();
$('#showBox').hover(function(){
clearTimeout(handle);
});
我正在尝试取消绑定悬停事件的特定功能。 div 会在页面加载时显示并在 5 秒后淡出,除非 div 悬停在上面。
函数怎么没有被破坏?我试过:.off, destroy
代码:
function fadeOutshowBox (){
$('#showBox').delay(5000).fadeOut();
}
fadeOutshowBox ();
$('#showBox').hover (function(){
$(this).unbind(fadeOutshowBox);
});
感谢大家的帮助。
你可以试试
$('#showBox').hover (function(){
$(this).fadeToggle();
});
你可以看看https://api.jquery.com/unbind/
解除绑定使用解除绑定事件而不是解除绑定函数
fadeOutshowBox 完全没有绑定。解除绑定它不会做任何事情。
这个怎么样: 定义函数 fadeOutshowBox,它执行淡出(没有延迟),然后在 setTimeout(或延迟)后调用该函数。同时,如果用户悬停,可以重新定义 fadeOutshowBox 什么都不做。
function fadeOutshowBox() {
$('#showBox').fadeOut();
}
setTimeout(fadeOutshowBox,5000);
$('#showBox').hover (function(){
fadeOutshowBox = function(){};
});
我还没有测试过,但我不明白为什么它不起作用。
您不能取消延迟功能,您应该改用setTimeout https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout
如果我没理解错的话,您只想为 div 设置动画,以防它没有悬停 5 秒。
在那种情况下,这应该可以解决问题:
function fadeOutshowBox (){
return setTimeout(function(){
$('#showBox').fadeOut();
}, 5000);
}
var handle = fadeOutshowBox();
$('#showBox').hover(function(){
clearTimeout(handle);
});