我正在尝试通过悬停在元素上方来创建弹出窗口。弹出窗口应在首次悬停后创建/加载。
初始化后的每个悬停都不应该创建新元素,而是重新打开已创建的元素。
我在上面的元素没有ID或类因此,我不能将它们存储在数组中。
$( ".tooltip-enabled" ).hover(
function() {
// Tooltip already exists?
// ...
createToolTip($(this));
}, function() {
closeToolTip($(this));
}
);
显示的代码将始终创建一个新的工具提示。有没有办法存储我已经在上面徘徊的物体?
答案 0 :(得分:2)
显示的代码将始终创建一个新的工具提示。有办法吗? 存储我已经在上面徘徊的物体?
是的。您可以使用存储计数器的$.fn.data
。
$(".tooltip-enabled").hover(function() {
if ($(this).data('hovered'))
createToolTip($(this));
else {
$(this).data('hovered', true); // set it here
openToolTip($(this));
}
}, function() { closeToolTip($(this)); });
请注意,为了保持代码简洁,我省略了if
和else
周围的括号。如果您的代码跨越多个语句,则需要使用括号。