1

我的 static_pages.js.coffee 文件中有以下代码,它运行良好,除了在我的网站上加载任何其他页面时,此代码运行并查找 .orders-chart。如果页面上没有该 div,High Charts 会引发错误并破坏我所有的其他 jQuery。

jQuery ->
$ ->
  new Highcharts.Chart
    chart: 
      renderTo: "orders-chart"
    title:
      text: "Orders by Day"
    xAxis:
      type: "datetime"
    yAxis:
      title:
        text: "Some Measurable"
    series: [
      pointInterval: 24 * 3600 * 1000
      data: [1, 2, 3, 5, 7]
    ]

有没有办法在运行此代码之前检查 .orders-chart ?还是更好的做事方式?

4

2 回答 2

0

我不知道如何为您的 Ruby 实现编写此代码,但在普通的 jQuery 代码中,要检查是否存在可以使用长度的元素:

if ($(".orders-chart").length) {
    // .orders-chart exists, do stuff...
}
于 2012-08-10T15:46:11.297 回答
0

我认为 highChart 寻找#orders-chart而不是.orders-chart 所以你需要有

 <div id="orders-chart" ></div>

并不是

 <div class="orders-chart" ></div>

要检查它是否存在,您可以使用

if ($("#orders-chart").length>0) {
   // Call chart constructor here
}

小提琴@ http://jsfiddle.net/jugal/bD487/

于 2012-08-10T18:16:51.003 回答