11548 sujets

JavaScript, DOM et API Web HTML5

Salut,

Avec jQuery je cree une variable x au démarrage de la page puis je crée une image dans un div #endive. Ensuite je veux qu'en cliquant sur cette image dynamiquement générée avec jQuery ca affiche x.

Probleme : quand je clique sur l'image ca execute bien le code, mais le browser se "rappelle plus" de la valeur de x :


$(function(){
    var x = 4;

    $('#endive').html("<img src='image.jpg'>");
    });
		
    $("#endive img").live("click", function(){
    alert(x);
    });
});


Comment faire pour garder en memoire la valeur de x ? (ceci est un code simplifié, mon vrai code genere une valeur aleatoire pour x avec random())
Modifié par apericube (12 Dec 2009 - 12:30)
Il y a une erreur dans ton code

$(function(){
    var x = 4;
    $('#endive').html("<img src='image.jpg'>");
    [b]});[/b] // supprime cette ligne		
    $("#endive img").live("click", function(){
        alert(x);
    });
});
Ok merci. En fait ce code est une version simplifiée de mon vrai code ou cette erreur apparait pas. Moi j'aimerais savoir comment faire pour conserver la valeur d'une variable partout dans mon code Javascript meme apres un evenement sollicitant la fonction jQuery live() par exemple.
bonjour,
Peut être comme ça : en la déclarant globale.

$(function(){

  x = 4;

    $('#endive').html("<img src='image.jpg'>");

    }); // supprime cette ligne		

    $("#endive img").live("click", function(){

        alert(x);

    });

});