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

调用jQuery .load()刷新Crypto Charts图表div返回空白问题求助

问题核心原因

  • 变量作用域错误:newData函数中使用var重新声明了addedAlt和totalList,修改的仅为函数内的局部变量,全局生效的列表数据并未更新
  • 刷新逻辑错误:$( "#mychart" ).load()方法请求的是当前页面的原始静态HTML,原始HTML中#mychart容器本身就是空节点,Crypto Charts是客户端渲染生成的图表,仅替换容器内容不会自动重新执行初始化逻辑,因此会出现空白

解决方案

你不需要用AJAX加载容器,直接把图表初始化逻辑抽为公共函数,每次数据更新后清空旧容器、重新调用初始化函数即可。

修正后的JS代码

// 默认币种列表
var defaultAlts = ["BTC", "ETH", "ADA", "BNB", "XRP", "UNI"];
// 自定义添加的币种列表
var addedAlt = [];
// 时间周期 默认90天
var timeframe = 90;

// 抽离公共的图表渲染函数
function renderChart() {
    // 清空旧图表容器
    document.getElementById("mychart").innerHTML = '';
    // 拼接最新的币种列表
    const totalList = addedAlt.concat(defaultAlts);
    // 重新初始化Crypto Charts
    CryptoCharts.roiComparison({
        chart_id: "mychart",
        cryptocompare_tickers: totalList,
        last_days: timeframe,
        options: {
          colors: ["#88AA24","#EF1273","#122673","#000000"],
          title: true,
          chart: {
            type: 'line'
          }
        }
    });
}

// 页面首次加载渲染初始图表
renderChart();

// 添加新币种逻辑
function newData() {
    const newAlt = document.getElementById("submitbox").value.trim();
    if (!newAlt) return; // 空输入直接返回
    // 不要重复添加同一币种
    if (!addedAlt.includes(newAlt) && !defaultAlts.includes(newAlt)) {
        addedAlt.push(newAlt);
    }
    // 重新渲染图表
    renderChart();
    // 清空输入框
    document.getElementById("submitbox").value = '';
}

// 修改时间周期逻辑
function changeTimeframe() {
    const newTimeframe = document.getElementsByClassName("timeframe")[0].value.trim();
    const timeframeInteger = parseInt(newTimeframe);
    // 校验输入合法性
    if (isNaN(timeframeInteger) || timeframeInteger < 1) return;
    timeframe = timeframeInteger;
    // 重新渲染图表
    renderChart();
}

额外优化说明

  • 新增了输入合法性校验,避免空值、非法数值导致的渲染异常
  • 新增了币种去重逻辑,避免重复添加同一币种导致的图表异常

内容的提问来源于stack exchange,提问作者Canadian-Coder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:48:02