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