Jquery ui 如何使jQuery UI工具提示的打开事件遵守show.delay属性设置
jQuery UI工具提示的打开事件不是在弹出窗口打开时触发,而是在鼠标进入元素时触发。它不符合show.delay属性设置。这是有文档记录的行为,所以我认为这不是一个bug 因此,如果我在表格的相邻单元格上有工具提示,并且用户在这些单元格上拖动鼠标,我的打开和关闭处理程序中的操作将执行多次——三、四、五次——是鼠标输入的单元格数的倍 如果show.delay尚未发生,退出公开赛的好方法是什么 编辑:由于不知道delay.show经过了多少时间,我不得不为setTimeout选择一个任意的持续时间,并使用一个标志跟踪类切换是否正在进行:Jquery ui 如何使jQuery UI工具提示的打开事件遵守show.delay属性设置,jquery-ui,settimeout,jquery-ui-tooltip,Jquery Ui,Settimeout,Jquery Ui Tooltip,jQuery UI工具提示的打开事件不是在弹出窗口打开时触发,而是在鼠标进入元素时触发。它不符合show.delay属性设置。这是有文档记录的行为,所以我认为这不是一个bug 因此,如果我在表格的相邻单元格上有工具提示,并且用户在这些单元格上拖动鼠标,我的打开和关闭处理程序中的操作将执行多次——三、四、五次——是鼠标输入的单元格数的倍 如果show.delay尚未发生,退出公开赛的好方法是什么 编辑:由于不知道delay.show经过了多少时间,我不得不为setTimeout选择一个任意的持续时
<snip> ...
show: {
delay: 666
},
open: function (event, ui) {
if (me.changingClass) return;
me.changingClass = true;
$("td.baz").switchClass("foo", "bar");
},
close: function (event, ui, dupids) {
$("td.baz").switchClass("bar", "foo");
setTimeout(function () { me.changingClass = false; }, 200);
}
。。。
展示:{
延误:666
},
打开:功能(事件、用户界面){
如果(me.changingClass)返回;
me.changingClass=真;
美元(“td.baz”).switchClass(“foo”、“bar”);
},
关闭:功能(事件、ui、dupids){
美元(“td.baz”).switchClass(“bar”、“foo”);
setTimeout(函数(){me.changingClass=false;},200);
}
如果我理解你的意图,我想这可能会奏效:
var timer;
$('td').tooltip({
show: {
delay: 2000 //number of milliseconds to wait
},
open: function (event, ui) {
var xthis = this;
timer = setTimeout(function () {
$(xthis).siblings().switchClass("bar", "foo");
}, 2000); // number of milliseconds to wait
},
close: function (event, ui, dupids) {
clearTimeout(timer);
$(this).siblings().switchClass("foo", "bar");
}
});
如果我明白你的意思,我想这可能会奏效:
var timer;
$('td').tooltip({
show: {
delay: 2000 //number of milliseconds to wait
},
open: function (event, ui) {
var xthis = this;
timer = setTimeout(function () {
$(xthis).siblings().switchClass("bar", "foo");
}, 2000); // number of milliseconds to wait
},
close: function (event, ui, dupids) {
clearTimeout(timer);
$(this).siblings().switchClass("foo", "bar");
}
});
你能展示一下你目前掌握的代码吗?我想一个超时就可以了,但我不能肯定地说,如果不看你正在处理什么。你能添加足够的代码来复制你的问题吗?复制它所需要做的就是将工具提示附加到表的TDs上。鼠标进入和离开时立即打开和关闭火焰,而不是在达到show.delay阈值后。因此,如果用户将鼠标(快速)拖动到一张表的几个相邻单元格上,进入单元格将触发打开事件,离开单元格将触发关闭事件,因此,如果鼠标在移动过程中接触三个单元格,这些事件将各触发三次。你能将其放入小提琴中吗?我不确定您是如何实现节目延迟的。请参阅编辑;它是tooltip配置对象的属性。您能显示到目前为止的代码吗?我想一个超时就可以了,但我不能肯定地说,如果不看你正在处理什么。你能添加足够的代码来复制你的问题吗?复制它所需要做的就是将工具提示附加到表的TDs上。鼠标进入和离开时立即打开和关闭火焰,而不是在达到show.delay阈值后。因此,如果用户将鼠标(快速)拖动到一张表的几个相邻单元格上,进入单元格将触发打开事件,离开单元格将触发关闭事件,因此,如果鼠标在移动过程中接触三个单元格,这些事件将各触发三次。你能将其放入小提琴中吗?我不确定您是如何实现节目延迟的。请参阅编辑;它是工具提示配置对象的属性。