2015-09-25 2 views
0

Я пытаюсь создать много редактируемого текста div. Я могу редактировать, но только первый div.добавить много редактируемого div

$(function() { 
     $(".add-new").click(function() { 
      $('.image').append("<div id='new-text'></div>") 
     }); 
     $('#writable').keydown(function() { 
      var writable_value = $('#writable').val(); 
      $('#new-text').html(writable_value) 
     }); 
    } 
) 

моя форма

<form> 
     <input type="text" id="writable"> 
     <buton type="button" class="btn btn-primary add-new">add new text</buton> 
</form> 

и если я нажимаю на выбранном DIV я могу редактировать его

+2

, так как вы используете 'id' для нового текста, который вы можете редактировать только один DIV, если это необходимо быть динамическим, тогда каждый div нового текста должен иметь разные идентификаторы –

ответ

2

DEMO

Вот что вы можете сделать:

Добавить динамический id каждый раз, а затем изменить значение всех editable DIV которого id начинается с некоторой общей стоимостью:

$(function() { 
     var count=0;//global variable to add unique id div 
     $(".add-new").click(function() { 
      $('.image').append("<div id='new-text_"+count+"' contenteditable>Edit me</div>") 
      //divs will be new-text_1,new-text_2 etc., 
      count++; 
     }); 
     $('#writable').keydown(function() { 
      var writable_value = $('#writable').val(); 
      $("div[id^=new-text]").text(writable_value); 
      //The above selector changes values of all div whose id starts with new-text 
     }); 
    } 
) 

UPDATE

Получил вашу точку добавления более div и редактирования и замены текста. Вам просто нужно изменить ниже линии

$("div[id^=new-text]").text(writable_value); 

в

$("div[id^=new-text]:last").text(writable_value); 
//Always target the last added textbox 

UPDATED DEMO

+0

вместо того, чтобы сделать счет полностью глобальным, вы можете переместить его в свое закрытие, и он все равно будет работать, таким образом он не испортит никаких плагинов, которые используют счет var (это очень распространенное имя var!): https: //jsfiddle.net/peteng/nbk6rjtp/1/ – Pete

+0

Спасибо, это то, что мне нужно, но у меня есть одна ошибка. Если я добавлю много div и редактировать вход, все div изменятся. – ArturDvorak

+0

На начальном этапе я подумал об этом @Pete, но потом я подумал это не будет иметь большого значения. Увидев вас комментарий, я чувствую, что он действительно имеет значение ... Спасибо, хотя ... –

Смежные вопросы