首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点击时的Javascript SetTimeOut不考虑2-3次点击后的时间延迟

点击时的Javascript SetTimeOut不考虑2-3次点击后的时间延迟
EN

Stack Overflow用户
提问于 2019-07-08 22:21:26
回答 1查看 111关注 0票数 5

我正在用javascript dhtmlx编写代码。我在一个网格上有一个onclick事件。当我点击网格时,会出现一个我想在4秒后消失的窗口。我尝试了setTimeOut,但在连续点击2-3次之后,它搞乱了时间,几乎立即隐藏了窗口。代码如下:

代码语言:javascript
复制
 var dhxWindow = new dhx.Window({
                    modal: false,
                    header: false,
                    footer: false,
                    resizable: false,
                    css: "toolbar",
                    movable: false,
                    height: 130,
                    expire: 4000
                });

var toolbar = new dhx.Toolbar("toolbar_container", {

                });
grid.events.on("CellClick", function (row, column, e) {

                    var data = [
                        {
                            id: "data1",
                            type: "imageButton",


                        },
                        {
                            id: "data2",
                            type: "imageButton",

                        },
                        {
                            id: "data3",
                            type: "imageButton",

                        }

                    ];

                    toolbar.data.parse(data);
                    dhxWindow.attach(toolbar);
                    dhxWindow.show();

                    setTimeout(function () {
                        dhxWindow.hide();
                    }, 4000);


                });

我做错了什么?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-08 22:27:59

代码语言:javascript
复制
var myTimeout;
grid.events.on("CellClick", function (row, column, e) {
                    if(myTimeout) clearTimeout(myTimeout); // cancel timeout if present
                    var data = [
                        {
                            id: "data1",
                            type: "imageButton",


                        },
                        {
                            id: "data2",
                            type: "imageButton",

                        },
                        {
                            id: "data3",
                            type: "imageButton",

                        }

                    ];

                    toolbar.data.parse(data);
                    dhxWindow.attach(toolbar);
                    dhxWindow.show();





                    myTimeout =  setTimeout(function () {
                        dhxWindow.hide();
                    }, 4000); // Reinstantiate timeout



                });
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56936971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档