jquery event for on render an element

jquery event for on render an element

本文关键字:an element render on event for jquery      更新时间:2023-09-26

我正在尝试在屏幕外执行所有 dom 操作,然后使其可见。 这有效,除了现在我遇到的情况是我尝试使用一种表单来执行此操作,我想在浏览器上呈现它时专注于第一个输入文本。
像这样:myForm.prependTo(myDiv).show().find('input:first').focus();
问题是在窗体完成呈现之前正在调用焦点,这导致了可爱的错误"无法将焦点移动到控件,因为它不可见、未启用或类型不接受焦点"
其他 Web 开发人员如何处理类似的情况,即在屏幕外操作元素,然后使其可见?我希望jQuery有类似
myForm.prependTo(myDiv, function() { /* on render code here */ })
我知道一种方法是设置超时,当它触发时,我会将重点放在输入上,但我觉得这不是最干净的做事方式。我知道 iframe 有一个 onload 事件,所以我很好奇人们是否通常在某个隐藏的 iframe 中绘制他们的元素并侦听它的 load 事件以了解元素何时完成渲染?如果是这样,你能给我举一个例子吗?

myForm.prependTo(myDiv).show(function(e){
    $(this).find('input:first').focus();
});​
我知道

我迟到了 7 年,但我遇到了类似的问题,我通过将渲染后需要发生的事情放在一个准备好的处理程序中来解决。

我有一个有效的恢复功能,但该元素已恢复的视觉反馈为零或接近零。

我尝试先清空元素。它仍然有效,但仍然没有视觉反馈。

$("#someSelector").empty(); restore();

然后我发现 ready() 发生在渲染之后;所以我把它改成了类似的东西......

$("#someSelector").empty().ready(function() { restore(); });

现在 restore() 直到 empty() 操作 RENDERS 之后才会发生。这意味着我的元素似乎清空然后重新填充(它总是这样做,但现在用户可以看到它发生了)。

几天前,我不知何故找到了这个解决方案,用于一个不同的问题,其中一些我记不清的模糊搜索。然后我再次需要它,但记不清我做了什么。现在我的搜索包括"jquery"和"render"这个词,并将我带到这里。

最终通过我的代码来找出我做了什么,我认为在这里发布它可能是一个好主意,以防其他人偶然发现这篇文章并且实际上需要在渲染发生后执行一些东西。

干杯。