2015-10-25 57 views
-1

我正在使用c3绘制一些图表。由于c3不允许我以我想要的方式编辑轴标签,因此我在加载图表后使用jQuery进行编辑。 (仅供参考,我试图展示1-24,在y轴上再次显示1-24而不是1-48小时)。无论如何,我无法得到这个工作。我已将代码放入(document).ready

<!-- jQuery --> 
<script src="../jquery/dist/jquery.min.js"></script> 


<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#c3-chart2").hide(); 

     $('input[type="radio"]').click(function() { 
      if ($(this).attr("value") == "chart1") { 
       $("#c3-chart2").hide(); 
       $("#c3-chart1").show(); 
      } 
      if ($(this).attr("value") == "chart2") { 
       $("#c3-chart1").hide(); 
       $("#c3-chart2").show(); 
      } 
     }); 

     $("#button").click(function() { 
      $("#c3-time-chart .c3-axis-y .tick text tspan").text("lol"); 
     }); 

     $("#c3-time-chart .c3-axis-y .tick text tspan").text("lol"); 

    }); 

<body> 
    The chart ids are here 
</body> 

<!-- C3 and D3 Charts--> 
    <script src="../d3/d3.min.js" charset="utf-8"></script> 
    <script src="../c3/c3.min.js"></script> 
    <script src="../graphs/d3-test-data.js"></script> 
    <script src="../graphs/c3-test-data.js"></script> 

我试图改变从谷歌铬控制台的标签,它的工作。我还添加了一个按钮,当我点击它时会更改标签。他们两个都像魅力一样。但不知何故,一旦页面加载,我无法自动做到这一点。所有类似的问题都有类似于我已经在做(document).ready的代码。请帮我找出问题所在。

+1

是否jQuery库得到全面加载?尝试在$(document).ready(...)中放置一个console.log()以查看它是否输入它。 – dchayka

+0

一定要在你想要做的动作之前运行你的插件 –

+3

缺少关闭''标签在''之前?尝试放置脚本src =“../ d3/d3.min.js”charset =“utf-8”>'并在jQuery脚本标记后加上'script'标记 – guest271314

回答

1

Document.ready已关闭或按钮单击将无法工作。问题在于Document.ready在文档完成时触发,但在所有JavaScript被触发后(例如创建d3图表的逻辑)都不需要。所以你需要在图表创建后运行你的文本修改代码。

一个关于如何获得这个的伪代码想法是运行一个setInterval,它使用jQuery来检查该节点是否存在,然后设置该值并销毁间隔,但如果该节点不存在,则重复该间隔。

+0

我一定会努力做到这一点。这看起来像是问题。 – mahacoder

+0

是的,它的工作原理!我的印象是(文档).ready已经等待,直到包括所有图表的整个页面都被创建。 – mahacoder

相关问题