gpt4 book ai didi

javascript - 将 "DOM Waiter"转换为命名空间监听器?

转载 作者:行者123 更新时间:2023-12-03 02:18:44 25 4
gpt4 key购买 nike

因此,我在 SharePoint 网站上安装了一个设计框架,用于动态插入文件列表,用户无需执行任何操作或单击任何按钮即可加载列表。但是,结果中的日期不会被格式化。

同时,我在另一个用户的帮助下提出了以下解决方案,该解决方案检查 DOM,直到加载它们,然后使用 MomentJS 执行重新格式化日期值的操作:

var timeout = null;
function waitForDom () {
console.log("Checking DOM...");
// check for the elements you expect to exist
if ($(".shortpoint-listitem-subtitle").length) {
$(".shortpoint-tab-title").click(function() {waitForDom();});
clearTimeout(timeout);
formatDates();
}
else {
// adjust timeout time to whatever feels appropriate to you
timeout = setTimeout(waitForDom, 500);
}
}

waitForDom();

function formatDates() {
$('.shortpoint-listitem-subtitle, .shortpoint-listitem-description').each(function() {
var currentElement = $(this);
var value=currentElement.text();
var dateParseRegex = /\d\d\d\d[-]\d\d[-]\d\d[T]\d\d[:]\d\d:\d\d[.]\d{7}[Z]/g;
var formattedDate = value.replace(dateParseRegex, function (match) {
return moment(match).format("MMMM Do YYYY, h:mm:ss a");
});
currentElement.text(formattedDate);
});
}

setTimeout(function () {
var content = '';
$(".content").append(content);
}, 2300);

它可以工作,但性能不是很好。我联系了该公司并询问如何才能连接到更同步的东西,他们的建议是“监听 jQuery 事件,如 shortpoint-init[ShortPoint Name]”。因此,对于我的情况,事件将是 shortpoint-initfiles-list

然而,在查看了 jQuery 事件示例之后,我不太清楚如何设置它,以便 jQuery“监听”文档/页面上发生的这些“事件”,以便以某种方式运行代码这比等待 DOM 更流畅。大多数事件似乎都是响应式的,也就是说,它们等待用户的输入,例如单击。

我想我正在寻找命名空间事件,但仍然不知道如何重新编写此代码。

我没有将此代码放入 document readdocument load 以及其他类似代码中的原因是数据是异步加载的,因此数据/DOM 是即使文档/正文已准备就绪,也不存在。

不应将其附加到任何类型的点击事件/操作。

最佳答案

您不是在寻找命名空间事件。您只想将事件挂接到 document 上:

$(document).on("shortpoint-initfiles-list", function(e) {
// Here, `e.target` will be the element the event was fired on
});

我假设这些事件是冒泡的。我试着在 their knowledgebase 上查找,但似乎没有像 API 引用这样愚蠢的东西(或者他们隐藏得很好)。

关于javascript - 将 "DOM Waiter"转换为命名空间监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49255603/

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