IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Fonction qui ne fonctionne pas sans alert()


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Par défaut Fonction qui ne fonctionne pas sans alert()
    Bonjour,

    j'ai une fonction qui est appelée lors d'un clique et qui est de nouveau appelée lors du checkURL.

    Elle ne fonctionne quand il y a un alert(), sinon elle ne fonctionne pas donc je ne comprend pas pourquoi. Et j'avoue que avoir un alert() pour que ça fonctionne c'est pas cool.

    Dans le code si dessous, j'ai alert() dans la fonction active_class() donc ça fonctionne mais si je l'enlève rien marche.



    Voici le code javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
    $(document).ready(function(){
        setInterval("checkURL()",250);//Appel la fonction checkURL() à un interval régulier                                                                                           
        //alert("ready");                                                                                                                                                             
    });
     
    //Fonction permettant d'activer l'onglet sélectionné
    function active_class(elt_current, hash){
        alert("test");
        $(elt_current).find('a[href="'+hash+'"]').parent().addClass("active");
        $(elt_current).find('a[href="'+hash+'"]').parent().siblings().removeClass("active");
    }
    var lasturl="";
     
     
    //Permet de voir si l'url est toujours la même lors de la mise à jour de la page        
    function checkURL()
    {
        hash=window.location.hash;
        if(hash != lasturl)
        {
            lasturl=hash;
            if(hash==""){
    	    loadPageHome();
    	    $('#style_theme').remove();
            }else{
    	    //alert(hash);
                loadPage(hash);
    	    $('#logos').remove();
            }
        }
    }
     
     
    //Chargement de la page quand clique sur l'onglet, appelée dans checkURL()              
     
    function loadPage(hash){
        //alert("loadPage");
        url=hash.replace('#', '');
        var tab = url.split("/");
        if(tab[0]=="theme_page"){
    	loadPageTheme(url);
        }
        else{
    	loadPageSoftware(url);
        }
    }
     
    function loadPageTheme(url_html){
        //alert("loadPageTheme");
        var tab = url_html.split("/");
        theme_tab=tab[1].split(".")
        theme_maj=theme_tab[0].toUpperCase();
        $("#title").text(theme_maj);
        $("#main").load(url_html);
        $("#footer_left").html('');
        $("#footer_right").html('2013 -<a href="http://www.lifl.fr/bonsai">Bonsai bioinformatics</a>');
        $('#logos').remove();
        $('#style_theme').remove();
        $('#style_soft').remove();
        $("#menu_central").css('display', 'none');
        $("head").append($(document.createElement("link")).attr({rel:"stylesheet", type:"text/css", href:"/Style/css/theme/"+theme_tab[0]+".css", id:"style_theme"}));
        window.location.href="#"+url_html;
    }
     
    function loadPageHome(){
        $("#center").load("/index.php #center");
        $("#title").text("Bonsai :: Bioinformatics Software Server");
        $("#footer").text("Updated : september 26, 2013");
    }
     
     
    function loadPageSoftware(url){
        hash="#"+url;
        //$("#menu_left").css("display","none");
        //$("#link_menu").css("display","block");
        tab=url.split("/");
        name_soft=""
        if (tab.length>2){
    	name_soft=tab[1];
        }else{
    	name_soft=tab[0];
        }
        name_maj=name_soft.toUpperCase();
        url_soft=url;
        url_css="/"+name_soft+"/"+name_soft+".css"
        url_html="/"+url_soft;
        $("#title").text(name_maj);
        $("#main").load(url_html);
        $("#menu_central").load("/"+name_soft+"/menu_central.txt");
        $("#footer_right").html('2013 -<a href="http://www.lifl.fr/bonsai">Bonsai bioinformatics</a>');
        $("#footer_left").html('For questions about <b>'+name_soft+'</b> or for bug reports, please contact <a href="javascript:escramble("'+name_soft+'@lifl.fr")>'+name_maj+'</a>');
        $("#style_soft").remove();
        $("#style_theme").remove();
        $("head").append($(document.createElement("link")).attr({rel:"stylesheet", type:"text/css", href:url_css, id:"style_soft"}));
        $('#logos').remove();
        $("#menu_central").css('display', 'block');
        window.location.href="#"+url_soft;
        //active_page(".tabs");
        active_class(".tabs",hash);
    }
    Fonction qui appelle loadPageSoftware et donc active_class()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $(document).on("click","#test_box", function(){
        loadPageSoftware("test/test.php");
        return false;
    });
    Est ce que quelqu'un a une idée ?

    Alaninho

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Par défaut
    Merci pour les liens, je les ai lu directement.

    Je pense que j'appelle au mauvais moment la fonction active_classe, non ?

    Pour la fonction callback et eval j'ai du mal à voir comment l'utiliser dans mon code, est ce que tu pourrais me donner un exemple stp ?

    Merci d'avance.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par alaninho
    est ce que tu pourrais me donner un exemple stp ?
    Citation Envoyé par Bovino
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setInterval(checkURL,250);
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Par défaut
    Pas de souci pour ça, merci, j'ai bien compris grâce au lien que tu m'a fourni juste avant.

    Mais mon problème d'onglet en couleur avec la classe active ne fonctionne toujours pas sauf en présence de alert().
    Ce que je veux, bien sur c'est supprimer ce alert(). Est ce que je dois faire comme pour le checkURL(). Et c'est out simplement un appel de active_classe qui est mal fait.

    D'après ce que je comprends, il continue le code même avec alert() ?

    Désolé mais je suis sur AJAX que depuis 2 3 mois et il y a encore des notions que je ne gère pas trop. Je ne connaissais pas AJAX avant.

    Merci de ton aide.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Par défaut
    C'est bon j'ai compris et réussi. lol.

    En faite, j'ai fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    function loadPageSoftware(url){
        hash="#"+url;
        //$("#menu_left").css("display","none");                                                                                                                                      
        //$("#link_menu").css("display","block");                                                                                                                                     
        tab=url.split("/");
        name_soft=""
        if (tab.length>2){
            name_soft=tab[1];
        }else{
            name_soft=tab[0];
        }
        name_maj=name_soft.toUpperCase();
        url_soft=url;
        url_css="/"+name_soft+"/"+name_soft+".css"
        url_html="/"+url_soft;
        $("#title").text(name_maj);
        $("#main").load(url_html);
        $("#menu_central").load("/"+name_soft+"/menu_central.txt");
        $("#footer_right").html('2013 -<a href="http://www.lifl.fr/bonsai">Bonsai bioinformatics</a>');
        $("#footer_left").html('For questions about <b>'+name_soft+'</b> or for bug reports, please contact <a href="javascript:escramble("'+name_soft+'@lifl.fr")>'+name_maj+'</a>')\
    ;
        $("#style_soft").remove();
        $("#style_theme").remove();
        $("head").append($(document.createElement("link")).attr({rel:"stylesheet", type:"text/css", href:url_css, id:"style_soft"}));
        $('#logos').remove();
        $("#menu_central").css('display', 'block');
        window.location.href="#"+url_soft;
        setInterval(active_class, 250);  //Ce que j'ai changé
    }
     
    //fonction modifiée aussi
    function active_class(){
        elt_current=".tabs";
        hash=window.location.hash;
        $(elt_current).find('a[href="'+hash+'"]').parent().addClass("active");
        $(elt_current).find('a[href="'+hash+'"]').parent().siblings().removeClass("active");
    }
    Merci, j'ai trouvé grâce à toi. Et, je comprends mieux maintenant.

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Et, je comprends mieux maintenant.

    C'est le but !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fonction qui ne fonctionne pas sous firefox
    Par megavolte dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/10/2009, 23h48
  2. Fonction qui ne fonctionne pas
    Par Herlece dans le forum PL/SQL
    Réponses: 18
    Dernier message: 12/08/2008, 16h05
  3. Réponses: 26
    Dernier message: 20/07/2007, 10h29
  4. [javascript]fonction qui ne fonctionne pas(concernant div)
    Par ranell dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/04/2007, 17h38
  5. [Javascript] Fonction qui ne fonctionne pas sous Opera et Safari
    Par frechy dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/02/2007, 10h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo