2015-10-25 58 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

相關問題