bonjour

J'essaie de convertir une méthode live() en on() en passant à jquery 1.7, mais c'est capricieux.

J'ai 3 niveaux de tableaux imbriqués où je peux cloner les lignes pour chaque niveau. Le dernier niveau contiennent une boite de sélection, en simplifiant, le html est ainsi :

Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<table class="tab1">
 <tbody >
  <tr> <-- 1er niveau
   <td>
    <table  class="tab2">
      <tbody>
        <tr> <-- 2ème niveau
         <td>
          <table class="tab3">
           <tbody >
            <tr> <-- 3ème niveau
              <td><select></select></td> <-- boite de sélection ici
            </tr>
            </tbody>
          </table>
         </td>
        </tr>
       </tbody>
      </table>   
     </td>
    </tr>
 </tbody>
</table>

et après clonage avec un append() d'une ligne d'un niveau donné, j'obtiens le comportement suivant sur les nouvelles boîtes de dialogue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
$('table.tab3 select').live('change', function(){
....(fonctionne très bien avec les 3 niveaux)
});
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
$('table.tab3').on('change', 'select', function(){
...(ne fonctionne pas avec les clones de niveau 1 et 2)
...(fonctionne avec les clones de niveau 3)
});
J'ai loupé quelque chose ou c'est un bug ?

merci