私は JQuery Mobile を初めて使用し、ユーザーの選択に応じて JqPlot グラフィックを含むページを表示しようとしています。
今朝、リンクをクリックして表示/ロードされたページの JavaScript コードが実行されないように設計されていることを読んで実験しました。
ロードするページの JS スクリプトを考慮するにdata-ajax
は、リンクの data 属性を false に設定する必要があります。ただし、この場合、ブラウザーはすべてのページをリロードし、ユーザーにとってスムーズな移行はありません。
<p><a href="myUrl.php" data-ajax= "false" data-transition="slideup" data-role="button" data-theme="c">
私はそれを理解する方法を見つけましたが、コードの専門家によるレビューが必要です。アイデアは、JQuery関数を介してグラフ作成ページをロードするためpageshow
に、グラフ コンテナー ページでイベントを宣言することです。#page-detail
.load()
このようにして、次のことができます。
- マイページへのスムーズな移行
- グラフがロードされるロード div を用意する
- データの読み込みと JqPlot グラフの準備ができたらグラフをレンダリングする
私のコード:
$(document).on('pageshow','#page-detail',function(){
//Apply a loading layer to the graph container
$('#graph-container').html("<div id='graph-loading-layer' class='loading loading-col2a'>"+g_graphLoadingText+"</div>");
//Load my graphic page creation. In this page, there are JS code to create the JQplot graphic
$('#graph-container').load(g_baseUrl+"index/graph/format/html",{chartHeight : newHeight+'px'},function(response, status, xhr) {
console.log('loaded')
});
});
上記の私の解決策は面倒ですが、グラフを簡単にロードできると確信しています より良い解決策を持っている人はいますか? より良いコードの実装?