高图表突破jQuery跨越Rails应用程序

时间:2012-08-10 15:42:06

标签: jquery ruby-on-rails ruby-on-rails-3 highcharts

我在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?或者更好的做事方式?

2 个答案:

答案 0 :(得分:0)

我不知道如何为你的Ruby实现编写这个,但是在普通的jQuery代码中,要检查元素的存在,你可以使用length:

if ($(".orders-chart").length) {
    // .orders-chart exists, do stuff...
}

答案 1 :(得分: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/