0

Phonegap(Cordova)を使用してアプリを実行しており、そのためにjquerymobileを使用しています。いくつかのデータベースを使用して動的jqplotを作成しましたが、問題は次のとおりです。プロットはページに表示されませんが、ページをリロードすると表示されます(ChromeではF5を使用)。プロットを見るために。(window.location.reloadを試してみましたが、最初のページにリダイレクトされ、プロットは別のページにあります)ありがとうございます。

<script class="code" type="text/javascript">
var dia = 2;
var plot2;
var line1=[[]];
var ultimopeso;
var dia_registro_global=0;
// PhoneGap code 
x$(document).on("deviceready", function () {

}); 

var listElement = x$('#devuelvepeso');
var messageElement = x$('#devuelvefecha');
var db;

x$('#saveItems').on('click', function(e) {
    insertItem();
});

// Create a reference to the database
function getDatabase() {
return window.openDatabase("Seguimiento","1.0", "Seguimiento Database", 200000);
}


onDeviceReady();
// PhoneGap is ready
function onDeviceReady() {
        db = getDatabase();
        db.transaction(function(tx) {
        tx.executeSql('CREATE TABLE IF NOT EXISTS SEGUIMIENTO(id INTEGER PRIMARY KEY AUTOINCREMENT, reportPeso)');
}, databaseError, getItems);
}




// Insert a record into the database
function insertItem() {
var insertValue = document.getElementById('reportPeso').value;
db.transaction(function(tx) {tx.executeSql('INSERT INTO SEGUIMIENTO(reportPeso) VALUES ("' + insertValue + '")');
}, databaseError, getItems);

}

// Database error handler
function databaseError(error) {
messageElement.html("SQL Error: " + error.code);
}

// consulta bbdd
function getItems() {
    db.transaction(function(tx){
    tx.executeSql('SELECT * FROM SEGUIMIENTO', [], querySuccess, databaseError);
}, databaseError);

}


function querySuccess(tx, result) {

    for (var i = 0; i < result.rows.length; i++) {
        var row = result.rows.item(i);
        line1.push([row.id, parseInt(row.reportPeso)]); 
        ultimopeso = row.reportPeso;
    }
}
$(window).load(function(){

reset_dia();
var len;

plot2 = $.jqplot ('chart1', [line1], {
  title: 'Seguimiento del peso',
  axesDefaults: {
    labelRenderer: $.jqplot.CanvasAxisLabelRenderer
  },
  axes: {
    xaxis: {
      label: "Semana",
      pad: 0
    },
    yaxis: {
      label: "Peso"
    }
  }

});
})

[ここに別の'divdata-role ="page"'があります]

<div data-role="page" id="seguimiento"  >
<div data-role="navbar"  >
        <ul>
    <li><a href="#midieta"><img src="images/menu/lista_dietas_logo-01-01.png"></a></li>
    <li><a href="#lista" ><img src="images/menu/mi_dieta_logo-01.png"></a></li>
    <li><a href="#perfil" onClick="cargar_datos_perfil();"><img src="images/menu/perfil_logo-01.png"></a></li>
    <li><a href="#pro"><img src="images/menu/lista_dietas_logo-01-01.png"></a></li>
    <li><a href="#seguimiento"  class="ui-btn-active ui-state-persist" onClick="recargagrafico()"><img src="images/menu/seguimiento_logo-01.png"></a></li>
    <li><a href="#preguntas"><img src="images/menu/preguntas_logo-01.png"></a></li>
  </ul>
</div>
<div data-role="header"  >
 <h1>Seguimiento</h1>
</div>
<div data-role="content"  >



<div id="chart1" style="height:50%; width:100%;">

</div>
<!--<pre class="code prettyprint brush: js"></pre>-->
</div>
<div data-role="footer"  >
   <h4>x</h4>
   </div>
  </div>
4

2 に答える 2

0

私はついに解決策を手に入れました!ページが表示されているときに .live() を使用して、プロットを作成します。ありがとうございました!

$('#seguimiento').live('pageshow', function() {

   plot2 = $.jqplot ('chart1', [line1], {
     title: 'Seguimiento del peso',
     axesDefaults: {
      labelRenderer: $.jqplot.CanvasAxisLabelRenderer
  },
  axes: {
    xaxis: {
      label: "Semana",
      pad: 0
    },
    yaxis: {
      label: "Peso"
    }
  }

});

});

于 2013-02-25T23:51:49.153 に答える