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();
});

1 réponse


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à :)