Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取一个动态创建的验证容器以与元素一起滚动_Javascript_Jquery_Css_Templates - Fatal编程技术网

Javascript 获取一个动态创建的验证容器以与元素一起滚动

Javascript 获取一个动态创建的验证容器以与元素一起滚动,javascript,jquery,css,templates,Javascript,Jquery,Css,Templates,我们动态地创建一个错误容器,将其附加到主体中,然后将其定位到错误所在的元素。这非常有效,直到用户滚动为止。错误容器保持在相同的固定位置,而元素在后台从屏幕中滚动出来。如何在滚动事件期间重新定位错误元素,使其也滚动 显示错误容器外观的屏幕截图。需要重新定位容器,并在用户滚动时滚动,以便它与它所在的元素保持一致。目前,它停留在一个固定的位置 现在,当错误处于可以滚动的位置时。请注意它是如何正确显示的 现在请注意,在滚动页面之后,错误不再停留在它所针对的元素中。我需要在滚动时使用元素的新位置正确地

我们动态地创建一个错误容器,将其附加到主体中,然后将其定位到错误所在的元素。这非常有效,直到用户滚动为止。错误容器保持在相同的固定位置,而元素在后台从屏幕中滚动出来。如何在滚动事件期间重新定位错误元素,使其也滚动

显示错误容器外观的屏幕截图。需要重新定位容器,并在用户滚动时滚动,以便它与它所在的元素保持一致。目前,它停留在一个固定的位置

现在,当错误处于可以滚动的位置时。请注意它是如何正确显示的

现在请注意,在滚动页面之后,错误不再停留在它所针对的元素中。我需要在滚动时使用元素的新位置正确地重新定位此元素

提前谢谢

我知道没有代码很难回答问题,但我必须小心,因为这是公司的事情

这里是我在“validation.js”库中构建容器的地方,作为我们正在使用的模板的jsViews包的一部分

buildContainer: function(ev)
        {
            var $targetElem = $(ev.target),
                leftX = $targetElem.offset().left,
                topY = $targetElem.offset().top,
                widthY = $targetElem.outerWidth(),
                heightX = $targetElem.outerHeight();

            var msg = $targetElem.closest("label").val();
            var appendingContainer = null;

            $targetElem.closest("label").val('');

            return $('<div/>', {
                html: '<ul>' + this.isValid + '</ul><span></span>',
                'class': 'validation-tooltip-error',
                css: {
                    top: topY - heightX,
                    left: leftX + widthY - 20
                }
            }).appendTo("body");
        }

希望这能有所帮助。

也许您可以将错误附加到它所指向的输入/标签附近?我通常有这样的东西

<div class = "input-row">
    <label>Label</label>
    <input type = "text" />
    <span class = "error">Error</span>
</div>

标签
错误

然后我可以将错误标签设置为绝对位置,将输入行设置为相对位置。

您能与我们共享您的HTML和CSS吗?我认为这是css中的定位问题。没有css无法确定,但我猜错误容器是绝对定位的,而不是固定的?@drip我想你的意思是他的容器设置为fixed@jj689不,我的意思是,现在它是绝对的,如果它是固定的,它会和内容一起滚动,但从图片中我看到情况并非如此……因此它可能被设置为绝对值。正在发生的一个问题是,我使用“body”标记进行附加。如果我可以使用元素所在的容器,在本例中为“editQuestionArea”,那么它会随之滚动。问题是查找这些容器中存在的位置,因为这些容器都是可滚动的。这是正常的、好的解决方案。我想,我应该这样写。我不想在html中把验证元素塞进它们所需的元素旁边,因为这会提升布局。可见与否。我会走这条路,我想,并更新它是怎么走的。谢谢。如果您关心其他元素,也许可以使用标签或输入的:before或:after元素。css将几乎与您在那里遇到的错误范围相同。但是如果错误信息必须是动态的,这就不起作用了。你知道吗,这引发了一个想法。这是基于你的答案,所以非常感谢这里的每一位帮助过我的人。我把你的两个想法混合在一起。谢谢当我试图附加错误容器时,它的行为不正确。因此,我将错误容器的css从“position:absolute”删除为“relative”,然后使用“insertAfter”,效果很好。再次感谢!
<div class = "input-row">
    <label>Label</label>
    <input type = "text" />
    <span class = "error">Error</span>
</div>