Javascript SetTimeOut on click 不考虑 2-3 次点击后的时间延迟
Javascript SetTimeOut on click doesn't respect the time delay after 2-3 clicks
我正在 javascript dhtmlx 中编写代码。我在网格上有一个 onclick 事件。当我单击网格时,会出现一个 window,我想在 4 秒后消失。
我尝试了 setTimeOut,但在连续点击 2-3 次后,它弄乱了时间并几乎立即隐藏了 windows。这是代码:
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);
});
我做错了什么?谢谢
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
});
我正在 javascript dhtmlx 中编写代码。我在网格上有一个 onclick 事件。当我单击网格时,会出现一个 window,我想在 4 秒后消失。 我尝试了 setTimeOut,但在连续点击 2-3 次后,它弄乱了时间并几乎立即隐藏了 windows。这是代码:
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);
});
我做错了什么?谢谢
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
});