Jquery 每个循环都无法提取值,除非使用 setTimeout

Jquery each loop fails to extract values unless using setTimeout

本文关键字:setTimeout 提取 循环 Jquery      更新时间:2023-09-26

我构建了一个 each 循环来调整位于图像顶部的图像标签上的填充。但是,由于某种原因,除非我使用 setTimeout 函数,否则它只会获取前一两个值的值。使用 setTimeout 函数,它可以正常工作。

这是jquery:

$(document).ready(
  function(){
    function imgTagMargin(){
          $.each($('.imgHolder'), function (index, value) {
            var holder_parent = $(value).height();
            $('.imgTag', value).css({"padding-top": holder_parent * 0.4})
            // console.log('div', index, ':',  holder_parent, "for", value);
          });
        }
        setTimeout(imgTagMargin, 200);
});

这是 HTML/PHP

<?php while ($galleryWorker = $galleryBoss->fetch_assoc()) { ?>
    <div class="imgHolder">
        <img src="_images/<?php echo $galleryWorker['thumbURL'];?>"
            alt="<?php echo $galleryWorker['imgAlt'];?>"
            data-image-full="_images/<?php echo $galleryWorker['imgURL'] ?>" id="thumbnail">
        <h4 class="imgTag"><?php echo $galleryWorker['imgAlt']; ?></h4>
    </div>

我在Chrome中使用jquery 1.12.1。

我改变了

$(document).ready

$(window).load

现在它工作正常。