Salut à tous !
je me suis lancé hier dans une grosse refonte du code js de mon appli. J'avais décidé de le faire de manière bien plus propre avec des function plus précise, etc...
Seulement voilà, ça plante sans trop savoir pourquoi, j'ai passé pas mal d'heure à regarder donc je m'en remet à vous.
Je vous préviens, quelque variables ne sont pas précisée ici. Elles le sont dans un js à côté qui gère les langues.
Merci à vous
$(function(){
function stockXml(xml){
data = xml;
}
function getXml(){
$.ajax({
type: "GET",
url: "data/"+localStorage.getItem("pays")+".xml",
dataType: "xml",
success: stockXml,
cache:true
});
}
function parseXml(){
$(data).find(cat+" object").each(function() {
name = $(this).find("name").text();
num = $(this).find("num").text();
afficher = $(this).find("afficher").text();
$('div[id=foo] #list').append('<li><a href="#three" data-transition="pop" numacomposer="'+num+'"><h5 style="color:#C33">'+name+'</h5><p>'+afficher+ ' </p></a></li>');
});
$("#list").listview('refresh');
}
function ClicNumero(){
numafficher = $(this).find('p').text();
numacomposer = $(this).attr('numacomposer');
nom=$(this).find('h5').text();
$('div[id=three]').find('h2').text(nom);
$('div[id=three]').find('p').text(numafficher);
}
function init (){
if(localStorage.getItem("pays")){
}
else{
localStorage.setItem("pays", "fr");
pays = localStorage.getItem("pays");
if ((pays=='lu')||(pays=='fr')){
$('#cat3').hide();
}
$("div[id=foo] div[data-role=header] h1").text('Help Number - '+pays);
$("#pays li a[id="+pays+"]").addClass("ui-btn-active");
numacomposer = '';
messageOk = "";
messageErreur = "";
data = "";
getXml();
}
function ClicCategorie () {
navigator.notificationEx.activityStart();
pays = localStorage.getItem("pays");
$("#info").hide();
cat = $(this).attr("id");
nom = $(this).text();
$('div[id=foo] div[data-role="header"] h1').text(nom+ ' - '+pays);
$('div[id=foo] #list').html("");
parseXml();
$('div[id=foo] #list li a').live('vclick',ClicNumero());
$.mobile.silentScroll(0);
navigator.notificationEx.activityStop();
return false;
}
function ajouterContact () {
messageOk = jQuery.i18n.prop("contactOk");
messageErreur = jQuery.i18n.prop("contactErreur");
navigator.notificationEx.activityStart();
var contact = navigator.contacts.create();
//les noms
var name = new ContactName();
name.familyName = nom+" - "+pays;
contact.name = name;
//num de téléphone
var phoneNumbers = [1];
phoneNumbers[0] = new ContactField('work',numacomposer, true);
contact.phoneNumbers = phoneNumbers;
contact.save(onSuccess,onError);
function onSuccess(){
navigator.notification.confirm(messageOk,backToPrincipal,'Help Number','Ok');
}
function onError(){
navigator.notification.confirm(messageErreur,backToPrincipal,'Help Number','Ok');
}
navigator.notificationEx.activityStop();
return false;
function pageThreeAfficher(){
$('a[id=call]').attr('href','tel:'+numacomposer);
$('a[id=contact]').live('vclick',ajouterContact());
}
function ClicPays(){
navigator.notificationEx.activityStart();
id = $(this).attr("id");
pays = $(this).text();
if(id=='be'){
$('#cat3').show();
}
else{
$('#cat3').hide();
};
localStorage.setItem("pays", id);
$("#pays li a").removeClass("ui-btn-active");
$("#pays li a[id="+id+"]").addClass("ui-btn-active");
$("#info").show();
$("div[id=two] h3").html('<small>'+nouveauPays+'</small>');
$("div[id=two] h2").html(pays).attr('style','margin-top:-14px;padding-bottom:5px;color:#C00');
$('div[id=foo] #list').html("");
$("div[id=foo] div[data-role=header] h1").text('Help Number - '+localStorage.getItem("pays"));
getXml();
navigator.notificationEx.activityStop();
}
function backPrincipal(){
navigator.notificationEx.activityStart();
$('"div[id=two]').live('pagehide',function(event, ui){
navigator.notificationEx.activityStop();
$("div[id=two] h3").text('');
$("div[id=two] h2").text('');
$('div[id=two] .loader').hide();
});
}
/ *********ACTION********* /
//Clic d'un catégorie
$('#menu p').live('vclick',ClicCategorie());
//Clic d'un numéros
$('div[id=three]').live('pageshow',pageThreeAfficher());
//Clic sur un pays
$("#pays li a").live('vclick',ClicPays());
//Retour page principale
$('"div[id=two] div[data-role=header] a').live('vclick',backPrincipal());
//Init
init();
});
Hello :)
Ligne 37 , fonction init(): manque un "}" à la fin du else
else{
localStorage.setItem("pays", "fr");
Ligne 88 , fonction ajouterContact(): manque un "}" à la fin de sa fonction
function ajouterContact () {
messageOk = jQuery.i18n.prop("contactOk");
messageErreur = jQuery.i18n.prop("contactErreur");
navigator.notificationEx.activityStart();
var contact = navigator.contacts.create();
//les noms
var name = new ContactName();
name.familyName = nom+" - "+pays;
contact.name = name;
//num de téléphone
var phoneNumbers = [1];
phoneNumbers[0] = new ContactField('work',numacomposer, true);
contact.phoneNumbers = phoneNumbers;
contact.save(onSuccess,onError);
function onSuccess(){
navigator.notification.confirm(messageOk,backToPrincipal,'Help Number','Ok');
}
function onError(){
navigator.notification.confirm(messageErreur,backToPrincipal,'Help Number','Ok');
}
navigator.notificationEx.activityStop();
return false;
Voilà :)