当前位置: 首页 > 知识库问答 >
问题:

几秒钟后自动隐藏对话框

吴镜
2023-03-14

我读过很多关于如何在几秒钟后以多种方式隐藏对话框的答案。然而,我不能得到这个工作与我的例子。

我正在使用一个opencart插件,当你在购物车中添加一个产品后会显示一个DIV,但它会一直保持在那里,只有当用户点击“继续购物”时才会关闭。我希望这个DIV在5秒后自动关闭。

我已经尝试setTimeout,延迟等,没有工作......所以我不确定我做错了什么:

代码是这样的:

$('#cart-total').html(json['total']); 
$('<div id="slidecart-success">'+json["confirmation"]+'</div>').
    dialog({
        autoOpen : true,
        modal: true,
        width : 480,
        resizable: false,                   
        title : cart_title,
        buttons: [{
            text: cart_checkout,
            click: function() { location = 'index.php?route=checkout/simplecheckout'; }
        },{
            text: pop_continue,
            click: function() { $(this).dialog("close"); }
        }],                 
        dialogClass: "slidecart-success",
        create:function(){
            $("#slidecart-success-confirm").bind("click", 
                function(){
                    $('#slidecart-success').dialog('close');
                }
            );
        },
        close: function(){
            $("#slidecart-success-confirm").unbind("click"); 
            $('#slidecart-success').remove();
        }
    });         

有人能帮我吗?

编辑:

我也在尝试,但没有成功:

if (json['success']) {

                $('#cart-total').html(json['total']);
// Start edit by Best-Byte //   
                $('<div id="slidecart-success">'+json["confirmation"]+'</div>').
                dialog({
                    autoOpen : true,
                    modal: true,
                    width : 480,
                    resizable: false,
                    title : cart_title,
          buttons: [{

        text: cart_checkout,
        click: function() { location = 'index.php?route=checkout/simplecheckout'; }
      },{
        text: pop_continue,
        click: function() { $(this).dialog("close"); }
      }
      ],                    
                    dialogClass: "slidecart-success",
                    create:function(){
                        setTimeout(function(){
    $("#slidecart-success-confirm").click();
}, 5000);
                        $("#slidecart-success-confirm").live("click", 
                            function(){
                                $('#slidecart-success').dialog('close');
                            }
                        );
                    },

共有2个答案

谷梁浩思
2023-03-14

如果您不打算取消自动关闭,请尝试此代码

var dialog = $("<div/>", {
    id: "slidecart-success"
    html: json.confirmation
}).dialog({
    autoOpen : true,
    modal: true,
    width : 480,
    resizable: false,                   
    title : cart_title,
    buttons: [{
        text: cart_checkout,
        click: function() { location = "index.php?route=checkout/simplecheckout"; }
    },{
        text: pop_continue,
        click: function() { $(this).dialog("close"); }
    }],                  
    dialogClass: "slidecart-success",
    open: function() { 
        setTimeout(function(){
            dialog.dialog("close");
        }, 5000);
    }, 
    close: function() {
        // its better to destroy dialog rather than remove node 
        dialog.destroy();
    }
}); 

// you can move this to outer scope 
// and it will close any opened dialog
$("#slidecart-success-confirm").on("click",function(){
    dialog && dialog.dialog("close");
});
贺佑运
2023-03-14

这个怎么样:

$('#cart-total').html(json['total']); 
$('<div id="slidecart-success">'+json["confirmation"]+'</div>').
    dialog({ /* ... */ });

setTimeout(function(){
    $("#slidecart-success-confirm").click();
}, 5000);

这仅在5秒超时后调用确认按钮上的单击事件。。。

编辑:

尝试更改绑定函数与live为该$("#幻灯片-成功-确认")按钮,同时使用该setTimeout从上面:

$("#slidecart-success-confirm").live("click", 
    function(){
        $('#slidecart-success').dialog('close');
    }
);

通过live函数,我们告诉新创建的元素(不是在DOM中构建的),根据选择器也响应该事件(在我们的例子中,单击)。试试这个,如果不起作用,我想我没办法了...

 类似资料:
  • 问题内容: 我想知道,几秒钟后如何在jquery中隐藏div?例如Gmail的邮件。 我已经尽力了,但是无法正常工作。 问题答案: 这将在1秒(1000毫秒)后隐藏div。 如果您只想隐藏而不褪色,请使用。

  • 我有一些链接,当我悬停在上面时,会显示与该链接相关的特定文本。我已经使用悬停功能来显示和隐藏div。 我还想添加这样的特性,即文本在几秒钟后自动改变,以显示下一个div的内容。即is循环通过DIVS。Hide div 1,show div 2,Hide 2,show div 3等。下面是显示悬停功能如何工作的代码。将鼠标悬停在右侧的链接上,左侧的文本将发生变化: null null

  • 问题内容: 页面加载后5秒钟是否可以隐藏元素? 我想做完全相同的事情,但希望通过CSS过渡获得相同的结果。 有什么创意吗?还是我问的问题超出了CSS过渡/动画的限制? 问题答案: 但是您无法以可能立即想到的方式进行操作,因为您无法为原本依赖的属性(例如,或更改尺寸和设置为)设置动画或创建过渡,以正确隐藏元素和防止其占用可见空间。 因此,为有问题的元素创建一个动画,并在5秒后进行切换,同时还将高度和

  • 我想在AlertDialog关闭后隐藏软键盘,但它仍然可见。这是我的代码:

  • 我开发了一个Android应用程序,一旦滑块完成显示MainActivity,它就会有闪屏,但在我的情况下,一旦显示MainActivity,它会在几秒钟(大约5秒)后自动重新加载(就像MainActivity第一次打开时一样打开)。 这是我的SplashScreenActivity 飞溅屏幕适配器 主要活动 仅从这个活动中,我调用了FunctionsActivity(MainActivity)。

  • 我试图在Android上剪切和调整视频大小(但在MacOS上类似),但当我运行ffmpeg命令时,它返回给我 有什么方法可以提高处理速度吗?下面是我的ffmpeg命令的示例 ffmpeg-y-i输入.mp4-ss 00:01.82-to00:02.94-vf缩放=500:1024-c:v libx264-c:a aac-b:v 500k-b:a 96k输出.mp4