Javascript 原型JS:带定时器的鼠标覆盖?
我不熟悉Prototype JS(一般来说还有javascript),我试图在用户将鼠标悬停在页面上的某个元素上半秒钟后,显示一个覆盖。目前,我正在通过以下方式实现这一目标:Javascript 原型JS:带定时器的鼠标覆盖?,javascript,mouseevent,prototypejs,mouseover,dom-events,Javascript,Mouseevent,Prototypejs,Mouseover,Dom Events,我不熟悉Prototype JS(一般来说还有javascript),我试图在用户将鼠标悬停在页面上的某个元素上半秒钟后,显示一个覆盖。目前,我正在通过以下方式实现这一目标: $$("a.tag").invoke('observe', 'mouseover', function() { //my code here }); 此代码在鼠标悬停触发器元素时显示叠加,但如何添加半秒暂停?执行以下操作: var timerId; $$("a.tag").invoke('observe', 'mous
$$("a.tag").invoke('observe', 'mouseover', function() {
//my code here
});
此代码在鼠标悬停触发器元素时显示叠加,但如何添加半秒暂停?执行以下操作:
var timerId;
$$("a.tag").invoke('observe', 'mouseover', function() {
timerId = setTimeout(function() {
// code here
}, 500);
});
$$("a.tag").invoke('observe', 'mouseout', function() {
if (timerId) {
cancelTimeout(timerId)
timerId = null;
}
});
这样做:
var timerId;
$$("a.tag").invoke('observe', 'mouseover', function() {
timerId = setTimeout(function() {
// code here
}, 500);
});
$$("a.tag").invoke('observe', 'mouseout', function() {
if (timerId) {
cancelTimeout(timerId)
timerId = null;
}
});
我认为您可以向元素添加一个class
waitingddelay
。
然后对“show function”进行编码,以便仅在元素没有
waitingddelay
类时执行。在延迟结束时,删除waitingddelay
我认为您可以向元素添加一个类waitingddelay
。
然后对“show function”进行编码,以便仅在元素没有
waitingddelay
类时执行。在延迟结束时,请删除WaitingAddeLay嗨,Martin,谢谢你的回答。我想做一些稍微不同的事情…我不想添加半秒的暂停,而是想在鼠标在元素上停留超过0.5秒时触发该功能。对于上面的代码,如果我将鼠标悬停在某个元素上0.1秒,仍然会出现覆盖,它只会被延迟。你知道如何检查鼠标在元素上停留的时间吗?对不起,我傻了,我现在明白了。我会想办法编辑我的帖子:)如果你嗨,马丁,谢谢你的回答。我想做一些稍微不同的事情…我不想添加半秒的暂停,而是想在鼠标在元素上停留超过0.5秒时触发该功能。对于上面的代码,如果我将鼠标悬停在某个元素上0.1秒,仍然会出现覆盖,它只会被延迟。你知道如何检查鼠标在元素上停留的时间吗?对不起,我傻了,我现在明白了。我会解决一些问题并编辑我的帖子:)如果延迟超时后没有调用show函数,那么这将不起作用。延迟超时后没有调用show函数,因此这将不起作用。