gpt4 book ai didi

javascript - 从原型(prototype)中的ajax请求获取高度

转载 作者:行者123 更新时间:2023-11-30 18:34:20 25 4
gpt4 key购买 nike

如何在原型(prototype)中获取 ajaxreponse 的高度。我需要获取从 Ajax 返回的元素的高度。

new Ajax.Updater('myDiv','myUrl' {
parameters: '?something=something',
onSuccess: function(transport){
//get height from first div returned

}
});

最佳答案

您必须将元素插入到 DOM 中,然后对其进行测量。最好的办法是将它插入到您用完后真正要插入的位置(您正在这样做,因为您使用的是 Ajax.Updater)。 [如果出于某种原因你想先测量它,你可以通过为它附加样式 position: absolute 并给它一个大的负 left 值(例如, left: -10000px) 让它离开页面,然后测量它,然后将它移动到你想要的地方(删除大的 left 等),但要小心由于样式和其他与其在 DOM 中的位置相关的因素而改变的大小。]

Prototype 调用所有常用的 Ajax 回调,但请注意,onSuccess 在执行更新之前 被调用。要在之后 获得回调,请使用onComplete(但请注意它也会在失败时被调用)或使用onSuccess 中的setTimeout

给定您的代码和注释“从返回的第一个 div 获取高度”,使用 onComplete 将如下所示:

onComplete: function() {
var firstDiv, height;
firstDiv = $("myDiv").down("div");
if (firstDiv) {
height = firstDiv.getHeight();
// ...
}
}

Live example

如果您更喜欢 onSuccess + setTimeout 方法(但请注意,添加元素和测量元素之间会有更长的延迟):

onSuccess: function() {
setTimeout(function() {
var firstDiv, height;
firstDiv = $("myDiv").down("div");
if (firstDiv) {
height = firstDiv.getHeight();
// ...
}
}, 0); // Won't really be 0ms, but not much longer
}

Live example

关于javascript - 从原型(prototype)中的ajax请求获取高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8726658/

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