Я создаю страницу, где пользователи могут добавлять теги (или ключевые слова), похожие на SO. Когда новый тег добавляется, я генерирую div и добавляю его в контейнер div через jquery ниже, который работает нормально.Доступ к динамически отображаемому html с jquery
// add new keyword
$('.Add_Keyword').click(function() {
// Perform the ajax post
$.post("/Content/_AddKeyword", { "keyword": document.getElementById('Keyword').value, "ContentId": document.getElementById('ContentId').value },
function (data) {
// Successful requests get here
// Update the page elements
document.getElementById('Keyword').value = '';
var new_div = $('<div class="float-left" id=tag-"' + data.KeywordId + '">' + data.Keyword + '<a href ="#" class="Remove_Keyword" data-id="' + data.KeywordId + '">[X]</a></div>');
$('#all_tags').append(new_div);
});
});
Вновь сформированные дивы имеют идентификатор = tag- и содержат ключевое слово (текст) и якорный тег, который может быть нажата, чтобы удалить это ключевое слово. Ниже приводится JQuery, чтобы удалить тег:
// remove keyword
$('.Remove_Keyword').click(function() {
var keywordToRemove = $(this).attr("data-id");
$.post("/Content/_RemoveKeyword", { keywordId: keywordToRemove },
function (data) {
// Successful requests get here
// Update the page elements
debugger
if (data.IsDeleted) {
var del_div = $('#tag-' + data.DeleteId);
del_div.hide();
}
});
});
Это работает для дивы, созданных с помощью GET, но не работает для динамически создаваемых дивы ..... Любые идеи, почему ??? Ниже приводится HTML:
<fieldset>
<legend>Keywords</legend>
<ol>
<li>
@Html.LabelFor(m => m.Keyword)
@Html.TextBoxFor(m => m.Keyword)
</li>
<li>
<a href="#" class="Add_Keyword">Add</a>
</li>
</ol>
</fieldset>
<div id="all_tags">
@foreach (var item in @Model.KeywordList)
{
<div class="float-left" id="[email protected]">
@item.Keyword
<a href="#" class="Remove_Keyword" data-id="@item.KeywordId">[X]</a>
</div>
}
</div>
Я изменил код accrodingly ..... но я до сих пор не в состоянии удалить динамически добавленные дивы. Хотя функция триггеров, div «del_div», похоже, не существует в визуализированном html .... Я делаю что-то неправильно в функции «Добавить»? – Purusartha
Все выглядит хорошо ... можете ли вы проверить метод POST, получаете ли вы данные? и проверьте консоль на наличие ошибок. – Unknown
Когда я просматриваю источник .... Я не могу найти динамически созданные divs в DOM .... это правильное поведение? Метод POST возвращает данные. Нет консольных ошибок – Purusartha