gpt4 book ai didi

javascript - 观察到元素后再次调用 IntersectionObserver 回调?

转载 作者:行者123 更新时间:2023-11-28 03:51:30 24 4
gpt4 key购买 nike

我正在观察消息并使用消息时间戳来跟踪这些观察结果。这些观察有一个重要条件:如果页面上没有客户端事件(光标不移动,或者他没有输入任何内容),则跟踪时间戳不应更新。客户端经常收到新消息,但没有任何事件。这意味着一旦完全观察到该元素,观察者就会跳过该元素。但是,当用户实际提供某些事件时,不会重新观察该元素,这意味着除非比率发生变化,否则永远不会再次调用观察者回调。我如何告诉 IS 重新计算所有观测值以触发我的回调?

手动“重新观察”元素的问题是,如果元素已经在交集边界内,则永远不会调用回调。

一些伪代码例如:

IS.callback = function(entries, observer){
for (var entry in entries)
{
if (activity && entries.hasOwnProperty(entry))
{
if (lastTimestamp < entries[entry].data.timestamp)
lastTimestamp = entries[entry].data.timestamp;
}
}
};

最佳答案

解决方案非常简单:删除所有观察者并再次观察元素。然后在任何事件更改时调用 startObserve();。为了简单起见,这里使用 jQuery。

function startObserve()
{
IS.targets =
$('#messages .message')
.each(function(index, target){
IS.observer.unobserve(target);
IS.observer.observe(target);
});
}

关于javascript - 观察到元素后再次调用 IntersectionObserver 回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47961784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com