奇妙な問題があります。生のhtmlファイルでうまく機能するd3jsを使用して棒グラフを作成しました。次に、後者を jquery モバイルの小さなアプリに埋め込みました。問題は、棒グラフが狂ってしまうことです。まずアニメーション化されません。次に、バーにバインドされたデータ値に従って後者が割り当てられますが、すべてのバーが同じ高さになります。
私のコードは、d3js だけを含む別の html ファイルに入れると完全に実行されます。ここに私のコードがあります:
CSS
#report{
overflow: hidden;
}
div.d3bar {
display: inline-block;
width: 20px;
height: 75px; /* We'll override this later */
background-color: teal;
margin: 2px;
}
JS
function init(){
document.addEventListener("deviceready", onDeviceReady, false);
$(document).ready(function(){
$("a").click(function (e) {
e.stopImmediatePropagation();
e.preventDefault();
$.mobile.changePage($($(this).attr("href")), { transition: "slide"});
});
});
}
HTML
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/XXXX.min.css">
<link rel="stylesheet" href="css/jquery.mobile.structure-1.2.0.min.css">
<link rel="stylesheet" href="css/app.css">
<script type="text/javascript" charset="utf-8" src="js/cordova-2.1.0.js"></script>
<script type="text/javascript" charset="utf-8" src="js/jquery-1.8.2.min.js"></script>
<script type="text/javascript" charset="utf-8" src="js/jquery.mobile-1.2.0.min.js"></script>
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
<script type="text/javascript" charset="utf-8" src="js/d3.v2.min.js"></script>
<title>Lotterie Nationale Loterij</title>
</head>
<body onload="init();">
<!-- Start of first page: #one -->
<div data-role="page" id="home" data-theme="a">
<div data-role="header"><h1>XXXXX Header</h1></div>
<div data-role="content" >
<p><a id="btn_dashboard" href="#page_dashboard" data-role="button">Dashboard</a></p>
<p><a id="btn_pos360" href="#page_pos360" data-role="button">POS 360°</a></p>
<p><a id="btn_My_Activities" href="#page_My_Activities" data-role="button">My Activities</a></p>
<p><a id="btn_about" href="#page_about" data-role="button" data-rel="dialog" data-transition="pop">About</a></p>
</div><!-- /content -->
<div data-role="footer" data-theme="a">
<h4>Computer Sciences Corporation</h4>
</div><!-- /footer -->
</div><!-- /page one -->
<div data-role="page" id="page_dashboard" data-theme="a">
<div data-role="header"><a href="#home" data-icon="Home">Home</a> <h1>Your Dashboard</h1></div>
<div data-role="content" id="report">
<script type="text/javascript">
$("#page_dashboard").live("pageshow",
function (event) {
$("#report").empty();
var dataset = [ 25, 7, 5, 26, 11, 8, 25, 14, 23, 19,
14, 11, 22, 29, 11, 13, 12, 17, 18, 10,
24, 18, 25, 9, 3 ];
d3.select("#report").selectAll("p")
.data(dataset)
.enter()
.append("div")
.transition()
.ease("linear")
.attr("class", "d3bar")
.duration(400)
.style("height", function(d){
return 10*d;
})
.text(function(d){return d;});;
$("#report").trigger("create");
}
);
</script>
Some statistics here and there
</div><!-- /content -->
</div>
<div data-role="page" id="page_pos360" data-theme="a">
<div data-role="header"><a href="#home" data-icon="Home">Home</a> <h1>Point Of Sales 360°</h1></div>
<div data-role="content" >
Some pos charts here and there
</div><!-- /content -->
</div>
<div data-role="page" id="page_My_Activities" data-theme="a">
<div data-role="header"><a href="#home" data-icon="Home">Home</a> <h1>My Activities</h1></div>
<div data-role="content" >
Some activities
</div><!-- /content -->
</div>
<div data-role="page" id="page_about" data-theme="a">
<div data-role="header"><a href="#home" data-icon="Home">Home</a> <h1>About XXXX Prototype</h1></div>
<div data-role="content" >
Prototype for XXXXX --
Computer Sciences Corporation
</div><!-- /content -->
<!--<div data-role="footer" data-theme="a">
<h4>The End</h4>
</div> /footer -->
</div><!-- /page one -->
</body>
</html>
誰もが問題を見ますか?