2010-12-03 4 views
1

Quelle est une bonne approche pour stocker des données pour des éléments dom qui n'existent pas encore, mais quand ils sont créés, ils obtiennent ces données.jQuery: Comment stocker des données pour des éléments inexistants?

+0

Pouvez-vous poster un exemple de code s'il vous plaît? Votre question ne semble pas tout à fait claire. – gideon

+0

C'est une question très vague. Veuillez fournir des informations sur les éléments DOM en cours de création. De plus, les données sont-elles une chaîne, un objet ou un tableau? Cette information nous aidera à répondre à votre question. Si vous pouvez ajouter un exemple de balisage et js ce serait bien aussi. –

+0

avez-vous essayé .data ... de jquery http://api.jquery.com/jQuery.data/ – kobe

Répondre

3

Je vais faire quelques suppositions ici puisque votre question est un peu vague en ce moment, mais il semble que vous vouliez manipuler des éléments DOM qui n'existent pas encore, probablement parce qu'ils seront chargés AJAXily. JQuery fournit une fonction appelée .live() qui vous permet de lier un gestionnaire d'événements à tous les éléments qui existent actuellement ou dans le futur.

Donc, si vous vouliez ajouter des données à un attribut de tous les éléments <p> - même ceux qui n'existent pas encore dans les DOM - vous pouvez faire quelque chose comme ceci:

// hook up an event handler that runs anytime a <p> is inserted into the DOM 
$('p').live('DOMNodeInserted', function() { 
    $(this).attr('title', 'foo'); 
}); 

// insert a couple <p> elements and see their title attributes update 
$('body').append('<p>hello</p>'); 
$('body').append('<p>world</p>'); 

Exemple de travail : http://jsfiddle.net/rsobers/TLXEu/3/

EDIT: au lieu d'utiliser des attributs pour stocker les données, vous pouvez utiliser la fonction .data() jQuery à la place. C'est un meilleur endroit pour vos données personnalisées.

Questions connexes