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

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

4 réponses

  1. 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
    1. 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
      1. 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
        1. 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
          1. 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