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