显示前几秒延​​迟:无

时间:2014-06-06 13:55:13

标签: javascript timer

我不知道如何实现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消失了,我只在禁用选择时才需要

3 个答案:

答案 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 herehere上进行读取。基本上,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');