同步 jQuery 从 DOM 检索

发布于 2024-12-01 13:45:07 字数 418 浏览 1 评论 0原文

我有一个个人脚本设置。我所做的就是在一个文件夹中编写一些 javascript 文件,然后一个脚本负责连接所有这些文件并缩小它们。

在两个不同的文件中,我有这个:

文件 1:

...document ready...
$(this).attr('id', 'foo');
...

文件 2:

...document ready...
$('#foo').append('<span>bar</span>');
...

问题是,当它尝试检索 #foo 元素时,它找不到任何内容,很可能是因为它没有创建然而。有什么方法可以同步这个过程,以便它遵循更正确的顺序吗? (先创建,然后追加)

谢谢!

I have a personal scripting setup. What I do is write some javascript files in a folder, then a script takes care of joining all of them and minify them.

In two different files, I have this:

FILE 1:

...document ready...
$(this).attr('id', 'foo');
...

FILE 2:

...document ready...
$('#foo').append('<span>bar</span>');
...

The problem is, that when it tries to retrieve the #foo element, it doesn't find anything, most probably cause it's not created yet. Is there any way to sync this process, so it follows a more proper order? (First create, then append)

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

牛↙奶布丁 2024-12-08 13:45:07

“文档就绪”事件无法确定函数的调用顺序。我认为如果您不使用文件 2 中的函数的“文档就绪”事件会更好。

类似这样的事情应该有效:

文件 2:

...on load of page/element...
'parent of foo'.bind('foo_inserted', 
                      function() { $('#foo').append('<span>bar</span>'); });

文件 1:

...document ready...
'parent of foo'.attr('id', 'foo');
'parent of foo'.trigger('foo_inserted');

有关更多详细信息,请参见例如此 页面 或 jQuery 文档

The "document ready" event cannot make sure in which order your functions are called. I think it would be better if you do not use the "document ready" event for the function in File 2.

Something like this should work:

File 2:

...on load of page/element...
'parent of foo'.bind('foo_inserted', 
                      function() { $('#foo').append('<span>bar</span>'); });

File 1:

...document ready...
'parent of foo'.attr('id', 'foo');
'parent of foo'.trigger('foo_inserted');

For more details see e.g. this page or the jQuery documentation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文