У меня есть div, и он может редактировать только div с определенным идентификатором
Теперь, когда я показываю каждый div из списка базы данных, как я могу редактировать каждый div отдельно. Надеюсь, что я свободен. Спасибо.
Идентификатор атрибута должен быть уникальным.
Если не требуется удалить идентификатор из ваших элементов html и использовать только иерархию классов и DOM для поиска и обработки вашего объекта DOM соответствующим образом.
Что-то вроде этого:
$(document).ready(function () {
$('.edit-link').click(function () {
$(this).siblings('.panel-title').attr('contenteditable', 'true');
$(this).closest(".panel").find('.panel-collapse').attr('contenteditable', 'true');
$(this).siblings('.panel-title').attr('style', 'border:2px solid;');
$(this).closest(".panel").find('.panel-collapse').attr('style', 'border:2px solid;');
$(this).attr('style', 'display:none;');
$(this).siblings('.done-link').attr('style', 'display:inline:block;');
});
$('.done-link').click(function () {
$(this).siblings('.panel-title').attr('contenteditable', 'false');
$(this).closest(".panel").find('.panel-collapse').attr('contenteditable', 'false');
$(this).closest('.panel-title').attr('border:none;');
$(this).closest(".panel").find('.panel-collapse').attr('style', 'border:none;');
$(this).attr('style', 'display:block;');
$(this).siblings('.done-link').attr('style', 'display:none;');
});
$('.delete-link').click(function () {
$(this).siblings('.panel-title').text('');
})
});
Используйте что-то вроде этого
$('.edit-link').click(function () {
$(this).parent().attr("contentEditable",true);
$(this).parent().next(".panel-collapse").attr("contentEditable",true);
$(this).parent().attr('style', 'border:2px solid;');
$(this).parent().next(".panel-collapse").attr('style', 'border:2px solid;');
$(this).attr('style', 'display:none;');
$(this).next(".done-link").attr('style', 'display:inline:block;');
});
Его можно использовать повторно.
Не указывайте id
в цикле. Идентификатор HTML должен быть Unique
в документе.
Лучше указать класс для определения div для каждого элемента. Обратите внимание, что идентификаторы удалены и добавлен класс для идентификации каждого div
@foreach (var item in Model)
{
<div class="panel panel-default main-panel">
..
<h4 class="panel-title newpanel">
Затем присоедините свои события, которые прослушивают классы
$('.newpanel').on('click','.edit-link', function(){});
Вы можете добавить другую ссылку редактирования, поскольку ваша ссылка на редактирование делает все редактируемые div одновременно. Но, как соглашение, идентификатор на странице html должен быть только одним.