gpt4 book ai didi

javascript - jQuery slideDown 后元素 css 高度返回 1

转载 作者:行者123 更新时间:2023-11-28 01:10:11 33 4
gpt4 key购买 nike

在下面一行的 javascript 中,应该找到处于 slideDown()/可见状态的下拉容器元素的高度。但是,当单击按钮并且下拉列表展开返回的高度为 1 时,它似乎在做相反的事情(我通过取消注释函数末尾的行来测试它)。例如,当再次单击按钮折叠下拉菜单时,高度为 681。为什么会这样,当单击按钮展开下拉容器时,有什么方法可以在此函数内正确评估展开高度?

$(this).next(".dropdown-container").css("height")

这是完整的javascript:

$(document).ready(function () {
var dropdown = $(".dropdown-btn");
var i;

for (i = 0; i < dropdown.length; i++) {
dropdown[i].addEventListener("click", function () {
$(".dropdown-btn").not(this).removeClass("active");
$(".dropdown-container").slideUp();
$(this).toggleClass("active");
if ($(this).hasClass("active")) {
$(this).next(".dropdown-container").slideDown();
if (Modernizr.mq('(max-height: 750px)') || $(this).next(".dropdown-container").css("height").replace(/px/, "") > ($(document).height() - 132 - 176)) {
$(".dropdown-btn").not(this).slideUp();
}
}
else {
$(".dropdown-btn").not(this).slideDown();
}

//$('a').text($(this).next(".dropdown-container").css("height").replace(/px/, ""));
});

最佳答案

根据上面的评论,需要在回调函数中评估高度,这是 slideDown 方法中的第二个选项。随着代码的移动,this 逻辑也需要更新为相对于容器而不是按钮。以下是更新后的代码:

if ($(this).hasClass("active")) {
$(this).next(".dropdown-container").slideDown("slow", function() {
// Animation complete.
if (Modernizr.mq('(max-height: 750px)') || $(this).css("height").replace(/px/, "") > ($(document).height() - 132 - 176)) {
$(".dropdown-btn").not($(this).prev(".dropdown-btn")).slideUp();
}
});
}

关于javascript - jQuery slideDown 后元素 css 高度返回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52146341/

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