gpt4 book ai didi

javascript - 选择器仅在 setTimeout 中找到合适的值

转载 作者:太空宇宙 更新时间:2023-11-04 08:04:30 25 4
gpt4 key购买 nike

我有一个脚本需要某个 div 的高度。

问题是 .height() jQuery 中的方法不会返回正确的值,除非它位于 setTimeout 中函数,即使是 0 的值.所以这个:

console.log("1:" + $(slides[0]).find('.slide__inner').height());
setTimeout(function(){console.log(
"2:" + $(slides[0]).find('.slide__inner').height());}
, 0);

结果

1: 0

2: 399 //expected value


现在我知道浏览器多线程的事情了,计时器元素中的元素以它们自己的....尺寸运行,但我需要让这个选择器打印正确的值而不使用 setTimeout 或任何计时器函数。

附加信息:

目标 div 是绝对位置,函数本身是为了在内部内容(和高度)都设置好之后专门启动。

编辑

不是 When should I use jQuery's document.ready function? 的副本.我特别说过我不想使用 setTimeout....

编辑2

提到的afterLoad函数是 Fancybox3 js 插件的一部分。阅读源码发现here :

afterLoad : $.noop, // When the content of a slide is done loading

由于工作限制,我不能展示太多代码,但 block 本身位于 resize() 中内部声明 afterLoad ,它在 afterLoad 结束时被调用 block

最佳答案

基于 the documentation of the plugin you're using以及您对原始问题的评论,看起来您的问题可以通过使用 afterShow 回调而不是 afterLoad 来解决。此回调将在打开动画完成后触发,此时高度查询是合适的。

关于javascript - 选择器仅在 setTimeout 中找到合适的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46760571/

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