Probleme sur script apres changement dom

Fermé
loic - 24 août 2015 à 18:33
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 26 août 2015 à 10:56
Bonjour,

j'ai un tableau tout simple en html, avec lequel j'ajoute une ligne grâce a un bouton ajouter.
voici mon code html pour le tableau :
<tr>
<td> <input type="number" id="achat_1" /> </td></tr>


voici mon script qui ajoute une ligne :
var i=$('table tr').length;
$(".addmore").on('click',function(){
	html = '<tr>';
	html += '<td><input type="number" id="achat_'+i+'"/></td>';
        html += '</tr>';
	$('table').append(html);
	i++;

});



tout ca fonctionne, mais j'ai une fonction qui agit sur l'événement blur des id qui commencent par "achat_" cette fonction fonctionne bien pour la 1ere ligne (qui est visible dès le chargement de la page) mais ne marche pas pour les lignes que j'ajoute.

voici ma fonction :
 $(function() {
 
    $('input[id^="achat_"]').blur(function() {
     alert('test');
    });

});



je pense qu'il faut recharger cette fonction lorsqu'on ajoute une ligne, mais j'ai essayer pas mal de chose et je n'y arrive pas.

J'espère que j'ai été assez clair. Merci par avance de votre aide.


A voir également:

2 réponses

jordane45 Messages postés 38303 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 novembre 2024 4 705
26 août 2015 à 09:33
Bonjour,

Dans le chargement de ta page :
 $(function() {
     init();
});

function init(){
  $('input[id^="achat_"]').blur(function() {
      alert('test');
  });
}




Dans ta faction d'ajout de ligne
var i=$('table tr').length;
$(".addmore").on('click',function(){
	html = '<tr>';
	html += '<td><input type="number" id="achat_'+i+'"/></td>';
        html += '</tr>';
	$('table').append(html);
	i++;

 init();

});



0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
26 août 2015 à 10:56
Salut,

Une autre solution possible est d'utiliser la fonction on :
 $(function() {
 
    $('table').on('blur', 'input[id^="achat_"]', function() {
     alert('test');
    });

});


https://api.jquery.com/on/

Bonne journée,
0