You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使height返回数值而非对象?

问题解决:scrollTop返回对象而非数值的原因与修复

问题原因

你代码里的$(".chatbox_body").scrollTop(newHeight - old)是设置滚动条位置的调用,jQuery的这类 setter 方法遵循链式设计,会返回自身的jQuery对象,而非设置的数值,这就是变量height变成对象的原因。

修复方案

要获取滚动条的当前位置(数值),需要调用不带参数的scrollTop()方法。你需要把设置和获取操作分开:

window.addEventListener("updatedHeight", (event) => {
  let old = event.detail.height;
  alert(old);
  let newHeight = $(".chatbox_body")[0].scrollHeight;
  alert(newHeight);
  
  // 先设置滚动条位置
  $(".chatbox_body").scrollTop(newHeight - old);
  // 再获取当前滚动条位置的数值
  let height = $(".chatbox_body").scrollTop();

  alert(height);

  window.livewire.emit("updateHeight", {
    height: height,
  });
  alert(height);
});

补充说明

  • jQuery中,大多数方法遵循"getter/setter"规则:传参数是设置值,返回jQuery对象;不传参数是获取值,返回对应的数据类型(这里是数值)。
  • 如果你想简化代码,也可以用链式调用的方式(但可读性稍差):
    let height = $(".chatbox_body").scrollTop(newHeight - old).scrollTop();
    

内容的提问来源于stack exchange,提问作者Tuấn Nguyễn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 15:55:24