Comment ajouter un évènement à la fonction append de jQuery

Fermé
Said_de_lyon Messages postés 18 Date d'inscription lundi 18 février 2013 Statut Membre Dernière intervention 29 août 2015 - Modifié par pijaku le 3/01/2014 à 08:39
Said_de_lyon Messages postés 18 Date d'inscription lundi 18 février 2013 Statut Membre Dernière intervention 29 août 2015 - 17 oct. 2013 à 14:23
for (i=1; i<=nb_mot_trouver; i++)
{
creation = 'creation_' + i;
$('#table').append('<div id="' + creation + '">' + new_var_append + '</div>');
}
Ce n'est qu'une partie du code.
Je voudrais savoir comment ajouter un évènement onclick à $('#table') selon la variable "creation".

J'ai essayé :
$('#table').append('<div id="' + creation + '" onclick="' + fonction() + '">' + new_var_append + '</div>');
Mais ça ne marche pas.
Pourriez-vous m'aider.
Merci d'avance
A voir également:

4 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 526
16 oct. 2013 à 19:27
Salut,

Pour ajouter un évènement onclick à l'élément #table :

$('#table').click(function() {
alert('clic sur #table');
});

selon la variable "creation"

Pas sur d'avoir compris ce point. Peux tu nous expliquer plus en détail ?
Si tu souhaites ajouter un évènement onclick sur l'élément #creation créé avec la fonction append(), tu fois pouvoir faire comme ceci :

$('#table').append('<div id="' + creation + '">' + new_var_append + '</div>');
$('#creation').click(function() {
alert('clic sur #creation');
});

Bonne journée
1
Said_de_lyon Messages postés 18 Date d'inscription lundi 18 février 2013 Statut Membre Dernière intervention 29 août 2015 2
Modifié par pijaku le 3/01/2014 à 08:40
creation est une variable qui prend une valeur selon une boucle avec un indice (creation = 'creation_' + i;)

dans l'élément $('#table') j'ajoute plusieurs <div> sur la variable creation où je veux pouvoir affilier une fonction sur un évènement click.
Dans une boucle où je crée des div à l'id creation sur l'élément '#table' j'ai essayé :

for (i=1; i<=max; i++)
{
creation = 'creation_' + i;
$('#table').append('<div id="' + creation + '">' + new_var_append + '</div>');
$(creation).click(function(){alert(creation);});
}
L'évènement click ne s'exécute pas.
Merci d'avance pour votre aide
1
Said_de_lyon Messages postés 18 Date d'inscription lundi 18 février 2013 Statut Membre Dernière intervention 29 août 2015 2
16 oct. 2013 à 20:29
Une précision :
Sur l'élément '#table', après y avoir insérer les éléments div à l'id 'creation_' + i;
j'y place un scroll sur la table.
En fait je ne sais pas si je peux mettre un évènement 'click' dans un $('#table').scroll()
Encore merci d'avance pour votre aide
1
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 526
Modifié par Pitet le 17/10/2013 à 01:03
Tu as oublié le dièse dans ton sélecteur css :
puisque
creation = 'creation_' + i

$(creation)
correspond à
$('creation_2')
pour i=2
mais le bon sélecteur est
$('#creation_2')
soit
$('#' + creation)

mettre un évènement 'click' dans un $('#table').scroll()
Les événements sont indépendants et se mettent sur un éléments. Ta question n'a pas de sens.
On peut gérer tous les événements possibles pour chaque élément, par exemple :
$('#table').click('clic sur #table');
$('#table').scroll('scroll de #table');

Voici un exemple avec plusieurs événements :

for (i = 1; i < 4; i++) {
$('#table').append('<div id="creation_' + i + '">creation_' + i + '</div>');
$('#creation_' + i).click(function() {
alert('clic sur ' + $(this).attr('id'));
});
$('#creation_' + i).mouseover(function() {
$(this).css('font-weight', 'bold');
});
$('#creation_' + i).mouseout(function() {
$(this).css('font-weight', 'normal');
});
}
$('#table').scroll(function() {
// scroll de l'élément #table
});
1
Said_de_lyon Messages postés 18 Date d'inscription lundi 18 février 2013 Statut Membre Dernière intervention 29 août 2015 2
17 oct. 2013 à 14:23
Merci de ton aide Pitet,
Finalement, j'ai utilisé l'évènement onscroll sur une balise HTML
Et ça marche
Tu peux visiter mon site sur www.liregratuit.fr
Merci pour tout et à bientôt sur le net
Saïd
0