Me respondo, la solució fue separar cada evento de manera independiente, la cosa quedó así:
Código Javascript
:
Ver originalvar PlayerID = '';
//Seleccionamos el jugador
$(document).on("click","#list_players > li", function() {
//Asignamos el ID
PlayerID = $(this).attr("id")
//Mostramos la pagina que muestra la info del jugador
$(":mobile-pagecontainer").pagecontainer("change","#player-info");
});
$(document).on("pagebeforeshow","#player-info", function() {
//Limpiamos algunos datos
$("#v_player_nombre").empty();
$("#v_player_apellido").empty();
$("#v_player_carnet").empty();
$("#v_player_id").val("");
$("#v_player_img").empty();
console.log(PlayerID);
//Mostramos los datos del jugador
$.ajax({url: BaseURL + '/players/'+ PlayerID,
type: 'GET',
async: 'false',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
beforeSend: function() {
// This callback function will trigger before data is sent
$.mobile.loading('show', {text:"",textVisible: false, theme: "b", textonly: false, html: ""}); // This will show ajax spinner
},
complete: function() {
// This callback function will trigger on data sent/received complete
$.mobile.loading('hide'); // This will hide ajax spinner
},
success: function (result) {
console.log(result);
if(result.length == 1){
$("#v_player_nombre").append('<p>' + result[0].nombre + '</p>');
$("#v_player_apellido").append('<p>' + result[0].apellido + '</p>');
$("#v_player_carnet").append('<p>' + result[0].carnet + '</p>');
$("#v_player_id").val(result[0].player_id);
if (result[0].imagen != '') {
$("#v_player_img").append('<img src="' + result[0].imagen + '">');
}
return false;
}
},
error: function (request,error) {
//reseteamos el ID
PlayerID = '';
// This callback function will trigger on unsuccessful action
alert('¡Ocurrió un problema en la red, intente de nuevo!' + error.message);
}
});
//Reseteamos el ID
PlayerID = '';
return false;
});
Fleon xD