检测未来元素的存在并采取行动

detect for future element exist and do something

本文关键字:存在 未来 元素 检测      更新时间:2023-09-26

我使用了一个插件,它将在我的DOM中创建新元素,但不幸的是,在初始化插件后,它没有回调。因此,我正在考虑捕获新创建的DOM并执行某些函数。倾听未来元素的最佳方式是什么?

我试过两种方法

  1. 使用setTimeout这种方法的缺陷在于,假设每个用户都能在相同的加载时间内启动插件是非常危险的。

  2. 使用livequery插件(https://github.com/brandonaaron/livequery)这很好,但不适合表演。在我捕捉到即将到来的新元素后,它仍然在运行。

我怀疑您使用的插件是否没有回调,但如果您真的想检查元素是否在DOM中,您可以选择该元素(例如通过id/class)并检查它是否已经存在:

function checkIfThere() { 
  if ($('.yourEl').length > 0) console.log("There it is!");
  else setTimeout(checkIfThere, 100); // recall the function until it is in the DOM
};

通过这种方式,您可以在每次元素未加载时分配超时来调用函数,直到加载为止。