Проблема здесь в том, что для каждого вашего ввода обработчик onlick равен «edit_area (element)» *
элемент является переменной, поэтому он будет иметь только одно значение (т. Е. Последнее значение, которое ему было дано)
То, что вы хотите здесь сделать, это передать значение элемента, а не ссылку на переменную.
$('<div class="editable-focus"></div>').css({
position: 'absolute',
left: dim.left + 'px',
top: dim.top + 'px',
width: dim.width + 'px',
height: dim.height + 'px'
}).appendTo(document.body).append('<input type="button" value="Edit" class="edit-btn" onclick="edit_area(\'' + element +'\')" />');
Этот исправленный код должен помочь.
Что касаетсяВаш комментарий выше моего предположения состоит в том, что ваша функция edit_area не ожидает строку в качестве входных данных, но ожидает элемент DOM или объект jQuery, возможно?
Есть несколько исправлений в зависимости от того, где вы хотите изменить свой код.Самый простой способ исправить это - извлечь элемент dom на основе класса css, который мы даем функции в качестве параметра.
Поэтому в начале вашей функции edit_area просто добавьте:
var myElement = $('.' + element);