je besoin d'aide de javascript/experts jquery pour résoudre le problème suivant:jquery clonage problème html, mise à jour DOM?
---- 1. this javascript avertit l'id d'une option sélectionnée dans une sélection de balise html:
$(function(){
$("#id_productos_list").change(
function(){
var op = $(this).selectedValues()
alert(op);
}
);
});
--- -2. this javascript clone code html:
function cloneMore(selector, type) {
var newElement = $(selector).clone();
var total = $('#id_' + type + '-TOTAL_FORMS').val();
newElement.find(':input').each(function() {
var name = $(this).attr('name').replace('-' + (total-1) + '-','-' + total + '-');
var id = 'id_' + name;
$(this).attr({'name': name, 'id': id}).val('').removeAttr('checked');
});
newElement.find('label').each(function() {
var newFor = $(this).attr('for').replace('-' + (total-1) + '-','-' + total + '-');
$(this).attr('for', newFor);
});
total++;
$('#id_' + type + '-TOTAL_FORMS').val(total);
$(selector).after(newElement);
}
---- c'est une partie du code HTML que JS est le clonage, et cela fonctionne sans problème
<select id="id_productos_list" name="productos_list" >
<option value="1">One</option>
<option value="2">Two</option>
</select>
mais juste le javascript # 1 fonctionne avec le code html initial (original pour cloner). les autres clonés n'alertent pas les options sélectionnées. J'ai testé avec différents attributs d'identifiants pour chaque étiquette clonée, sans résultats.
Qu'est-ce que je manque? firebug affiche le DOM html cloné nice: S Dois-je mettre à jour DOM après le clonage pour faire $ ("# id productos list"). change (...) fonctionne?
J'ai fait une expérience, la balise d'option d'origine est
@panchicore: Je ne crois pas que le gestionnaire de changement soit cloné aux nouveaux éléments. Vous devrez peut-être l'ajouter explicitement. –
l'indice gagnant: "Vous devrez peut-être réaffecter ces gestionnaires aux nouveaux éléments." la solution était simple en ajoutant la méthode true to clone: var newElement = $ (selector) .clone (true); Merci David Andres. +9999 – panchicore