我不知道如何实现display: none
不会立即起作用。
几秒后我需要#popUpBox消失。
$(document).bind("mousedown", function(){
$('#popUpBox').css({'display':'none'});
jQuery(function($) {
var $txt = '';
$('.selectiontext').bind("mouseup", function(e){
if (window.getSelection){
$txt = window.getSelection();
}
else if (document.getSelection){
$txt = document.getSelection();
}
else if (document.selection){
$txt = document.selection.createRange().text;
}
else return;
if ($txt!=''){
$('#popUpBox').css({'display':'block', 'left':e.pageX+5+'px', 'top':e.pageY+0+'px'});
}
});
$(document).bind("mousedown", function(){
setTimeout(function() {
$('#popUpBox').css({'display':'none'});
}, 2000);
});
不幸的是,当我选择文字时,现在总是#popUpBox消失了,我只在禁用选择时才需要
答案 0 :(得分:0)
尝试使用setTimeout函数。
$(document).bind("mousedown", function(){
setTimeout(function() {
$('#popUpBox').css({'display':'none'});
}, *time you want(int)*);
});
修改:提出新问题
禁用选择时添加if语句。在这里:
$(document).bind("mousedown", function(){
*if statement*
setTimeout(function() { (...)
因为它与整个文档绑定,所以它总是会在没有任何条件的情况下隐藏该框。
答案 1 :(得分:0)
如果您希望函数在mousedown
事件后触发几秒钟,请尝试此操作:
$(document).bind("mousedown", function(){
setTimeout(function() {
$('#popUpBox').css({'display':'none'});
}, 5000);
});
在setTimeout here和here上进行读取。基本上,setTimeout()
允许您传递一个函数,然后传递一个间隔(以毫秒为单位),以便在执行该函数之前等待。
编辑(用于更新):要在没有选择时才发生这种情况,请尝试:
$(document).bind("mousedown", function(){
if (!window.getSelection) {
setTimeout(function() {
$('#popUpBox').css({'display':'none'});
}, 5000);
}
});
答案 2 :(得分:0)
以下代码将在2秒后隐藏div
$("#popUpBox").delay(2000).hide();
如果你想要动画,你也可以使用fadeOut方法
$("#popUpBox").delay(2000).fadeOut('fast');