я пытаюсь дать пользователю возможность обновлять значение некоторых полей, связанные с ним, нажав на контейнер с именем # инфо-клиентом Здесь я прилагаю входные зоны после щелчок и после нажатия кнопки #finish, информация будет обновлена. Проблемы я получил в том, что информация о обновлялась еще они показали более чем один раз (2 раза или даже 3 ..)добавляющих элементы и ReplaceWith() - JQuery
$("#info-client").one('click', function() {
$("#info-client").children().hide();
// liste des champs
var c1 = $('<label> Nom : </label><input type="text id="identifiant"> <br>');
var c2 = $('<label> Adresse : </label><input type="text" id="adresse"><br>');
var c3 = $('<label> Ville : </label><input type="text" id="ville"><br>');
var c4 = $('<label> Tel : </label><input type="text" id="tel"> <br>');
var c5 = $('<label> Fax : </label><input type="text" id="fax"> <br>')
var button = $('<input type="button" id="finish" value="Mettre à jour">');
$("#info-client").append(c1);
$("#info-client").append(c2);
$("#info-client").append(c3);
$("#info-client").append(c4);
$("#info-client").append(c5);
$("#info-client").append(button);
$("#finish").one('click', function() {
var identifiant = $('#identifiant').val();
var adresse = $('#adresse').val();
var ville = $('#ville').val();
var tel = $('#tel').val();
var fax = $('#fax').val();
c1.replaceWith("<h4>" + identifiant + "</h4>");
c2.replaceWith("<p> Adresse : " + adresse + "</p>");
c3.replaceWith("<p>" + ville + "</p>");
c4.replaceWith("<p>Fax : " + tel + "</p>");
c5.replaceWith("<p> Tel :" + fax + "</p>");
});
});
Не могли бы вы привести пример проблемы в http://jsfiddle.net? Или, по крайней мере, добавьте свой HTML-код на вопрос –
Вот он: https://jsfiddle.net/3h79cv7o/ –
Вы должны знать, что '$ (" # info-client ")' делает запрос DOM и создает jQuery объект каждый раз, когда он выполняется. Вы можете в значительной степени оптимизировать свой код, кэшируя его: 'var $ infoClient = $ (" # info-client "); $ InfoClient.somestuff(); $ infoClient.otherStuff(); 'Вы также можете привязать команды:' $ infoClient.append (c1) .append (c2) .append (c3) ' –