Javascript 在JQuery移动应用程序中显示HighCharts
我有JQuery移动应用程序主页的以下代码。它基本上是一个简单的主页,带有一个按钮,可以重定向到另一个页面(“图表1”),该页面在页脚中包含两个选项卡栏:一个用于自身(“图表1”),另一个用于另一个页面(“图表2”)。我想在这两个页面的内容部分添加一些HighCharts库中的图表,当这些页面加载时。我尝试过几种方法(live、bind等),但似乎都不管用。显示图表的唯一方法是使用ready方法(见下文)。我的问题是:是否有一种方法可以在单击按钮时在页面的特定区域显示图表 加载图表的方法:Javascript 在JQuery移动应用程序中显示HighCharts,javascript,jquery,css,jquery-mobile,highcharts,Javascript,Jquery,Css,Jquery Mobile,Highcharts,我有JQuery移动应用程序主页的以下代码。它基本上是一个简单的主页,带有一个按钮,可以重定向到另一个页面(“图表1”),该页面在页脚中包含两个选项卡栏:一个用于自身(“图表1”),另一个用于另一个页面(“图表2”)。我想在这两个页面的内容部分添加一些HighCharts库中的图表,当这些页面加载时。我尝试过几种方法(live、bind等),但似乎都不管用。显示图表的唯一方法是使用ready方法(见下文)。我的问题是:是否有一种方法可以在单击按钮时在页面的特定区域显示图表 加载图表的方法: $(
$(document).ready(function() {
var chart = new Highcharts.Chart({
chart: {
renderTo: 'containerYear',
type: 'column',
margin: [ 50, 50, 100, 80]
},...and so on
});
主页代码:
<div data-role="page" data-theme="b" id="main-page">
<div data-role="header" data-position="fixed">
<h1>Data</h1>
</div>
<div data-role="content">
<ul data-role="listview" data-inset="true">
<li data-role="list-divider">Data</li>
<li><a href="#chart1" id="btn1" data-transition="slide">Graphs</a></li>
</ul>
</div>
<div data-role="footer" data-position="fixed">
<h4>CTK</h4>
</div>
</div>
<div data-role="page" data-theme="b" id="chart1">
<div data-role="header" data-position="fixed">
<a href="#main-page" data-icon="arrow-l" data-iconpos="left" data-transition="slide" data-direction="reverse">Back</a>
<h1>Car Crashes</h1>
</div>
<div data-role="content">
<div id="containerYear"></div>
</div>
<div data-role="footer" data-position="fixed">
<div data-role="navbar">
<ul>
<li><a href="#chart1" data-role="tab" class="ui-btn-active">Chart 1</a></li>
<li><a href="#chart2" data-role="tab" >Chart 2</a></li>
</ul>
</div>
</div>
</div>
<div data-role="page" data-theme="b" id="chart2">
<div data-role="header" data-position="fixed">
<a href="#main-page" data-icon="arrow-l" data-iconpos="left" data-transition="slide" data-direction="reverse">Back</a>
<h1>Car Crashes</h1>
</div>
<div data-role="content">
<div id="containerMonth"></div>
</div>
<div data-role="footer" data-position="fixed">
<div data-role="navbar">
<ul>
<li><a href="#chart1" data-role="tab">Chart 1</a></li>
<li><a href="#chart2" data-role="tab" class="ui-btn-active">Chart 2</a></li>
</ul>
</div>
</div>
</div>
资料
- 数据
CTK
车祸
车祸
jQuery Mobile在与其他js绘图框架一起使用时是独一无二的。它们只能用于pageshow事件
还有一件事,记得在jQuery Mobile初始化之后初始化HighCharts
下面是一个工作示例:
HTML:
<!DOCTYPE html>
<html>
<head>
<title>jQM Complex Demo</title>
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=no; target-densityDpi=device-dpi"/>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>
</head>
<body>
<div data-role="page" id="index">
<div data-theme="a" data-role="header">
<h3>
First Page
</h3>
<a href="#second" class="ui-btn-right">Next</a>
</div>
<div data-role="content">
<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
</div>
<div data-theme="a" data-role="footer" data-position="fixed">
</div>
</div>
</body>
</html>
$(document).on('pageshow', '#index', function(){
var chart;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'line',
marginRight: 130,
marginBottom: 25
},
title: {
text: 'Monthly Average Temperature',
x: -20 //center
},
subtitle: {
text: 'Source: WorldClimate.com',
x: -20
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
yAxis: {
title: {
text: 'Temperature (°C)'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
formatter: function() {
return '<b>'+ this.series.name +'</b><br/>'+
this.x +': '+ this.y +'°C';
}
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'top',
x: -10,
y: 100,
borderWidth: 0
},
series: [{
name: 'Tokyo',
data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
}, {
name: 'New York',
data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]
}, {
name: 'Berlin',
data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]
}, {
name: 'London',
data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
}]
});
});
});
jQM复杂演示
首页
Javascript:
<!DOCTYPE html>
<html>
<head>
<title>jQM Complex Demo</title>
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=no; target-densityDpi=device-dpi"/>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>
</head>
<body>
<div data-role="page" id="index">
<div data-theme="a" data-role="header">
<h3>
First Page
</h3>
<a href="#second" class="ui-btn-right">Next</a>
</div>
<div data-role="content">
<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
</div>
<div data-theme="a" data-role="footer" data-position="fixed">
</div>
</div>
</body>
</html>
$(document).on('pageshow', '#index', function(){
var chart;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'line',
marginRight: 130,
marginBottom: 25
},
title: {
text: 'Monthly Average Temperature',
x: -20 //center
},
subtitle: {
text: 'Source: WorldClimate.com',
x: -20
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
yAxis: {
title: {
text: 'Temperature (°C)'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
formatter: function() {
return '<b>'+ this.series.name +'</b><br/>'+
this.x +': '+ this.y +'°C';
}
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'top',
x: -10,
y: 100,
borderWidth: 0
},
series: [{
name: 'Tokyo',
data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
}, {
name: 'New York',
data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]
}, {
name: 'Berlin',
data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]
}, {
name: 'London',
data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
}]
});
});
});
$(document).on('pageshow','#index',function(){
var图;
$(文档).ready(函数(){
图表=新的高点图表。图表({
图表:{
renderTo:'容器',
键入:“行”,
marginRight:130,
marginBottom:25
},
标题:{
文字:“月平均气温”,
x:-20/中心
},
副标题:{
文字:“来源:WorldClimate.com”,
x:-20
},
xAxis:{
类别:[‘一月’、‘二月’、‘三月’、‘四月’、‘五月’、‘六月’,
‘七月’、‘八月’、‘九月’、‘十月’、‘十一月’、‘十二月’]
},
亚克斯:{
标题:{
文字:“温度(°C)”
},
绘图线:[{
值:0,
宽度:1,
颜色:'#808080'
}]
},
工具提示:{
格式化程序:函数(){
返回“+this.series.name+”
+
这个.x+':'+这个.y+'°C';
}
},
图例:{
布局:“垂直”,
对齐:“右”,
垂直排列:“顶部”,
x:-10,
y:100,
边框宽度:0
},
系列:[{
名称:"东京",,
数据:[7.0,6.9,9.5,14.5,18.2,21.5,25.2,26.5,23.3,18.3,13.9,9.6]
}, {
名称:'纽约',
数据:[-0.2,0.8,5.7,11.3,17.0,22.0,24.8,24.1,20.1,14.1,8.6,2.5]
}, {
名称:“柏林”,
数据:[-0.9,0.6,3.5,8.4,13.5,17.0,18.6,17.9,14.3,9.0,3.9,1.0]
}, {
名称:“伦敦”,
数据:[3.9,4.2,5.7,8.5,11.9,15.2,17.0,16.6,14.2,10.3,6.6,4.8]
}]
});
});
});
如果我不包括所需的图表,则不会显示,但是如果我包括它,则会显示输出(我正在pc浏览器上调试)。那么,这是否意味着当我将其部署到手机或平板电脑上时,它将无法工作????