При попытке динамически загружать содержимое, используя jQuery.load() функцию он кажется, что если пользователь нажимает на ссылку в нав более чем один раз, чтобы заменить содержимое:Динамическая загрузка содержимого (файлов) с помощью JQuery
<div id="REPLACEMENT"></div>
Все содержимое, загруженное ранее, сохраняется и добавляется новый контент. Кажется, что содержимое загружаемого файла на самом деле не «очищает» содержимое div перед добавлением нового контента. Я предполагаю это, потому что мои сценарии $ .on («click») работают несколько раз (столько раз, сколько пользователь нажал на ссылку навигации). Я попытался установить
$.remove
$("REPLACEMENT").html("")
$("#REPLACEMENT").empty();
не имеет смысла, проблема не устранена. Я обнаружил, что, если я использую альтернативные методы обнаружения кликов, у меня есть различные результаты:
$(".deleteBtn").click(function() { // Nothing happens.
$(".deleteBtn").on("click", function() { // Nothing happens.
$(document).on("click",".deleteBtn",function() { // Triggers, but multiple times.
Я действительно застрял на этом! Любая помощь будет принята с благодарностью!
Вот копия паста моей замены кода, а также мой OnClick код:
// Enables the Archive, Reporting, and Error-Reporting links in the navigation.
$(document).on("click", "li#archive, li#reporting, li#error-reporting", function() {
$("#REPLACEMENT").empty();
$("#REPLACEMENT").load("modules/"+$(this).attr("id")+".html");
});
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
// Delete an archive
//$(".deleteBtn").click(function() {
//$(".deleteBtn").on("click", function() {
$(document).on("click",".deleteBtn",function() {
//alert('asdf');
var Record = $(this).attr('id');
bootbox.confirm("Are you sure?", function(result) {
if (result == true) {
$.ajax({
type: "PUT",
url: APIUrl + 'DeleteArchive/' + Record,
success: function(data, textStatus, jqXHR){
$("#TR_"+Record).remove();
},
error: function(jqXHR, textStatus, errorThrown, data){
console.log("AJAX "+errorThrown+": - " + textStatus);
$("#ERROR_RESPONSE").html(data);
$("#ERROR_RESPONSE_GROUP").show();
}
});
}
});
});
$ ("# ЗАМЕНА") HTML (""); Должно сработать.Вы сделали синтаксические ошибки в размещенном коде, так что, возможно, вы ошибочно указали его в своем коде? –
не имеет смысла, поскольку 'load()' заменяет выходящий внутренний html новым контентом. Это означает, что вам даже не нужно использовать 'empty()'. Похоже, что что-то еще не так, как, возможно, дублирующее содержимое с сервера – charlietfl
вы правы в вопросах синтаксиса, я набрал его вручную, а не копировал его. Извини за это! Я также продолжу поиск кода, дублирующегося чем-то другим, что я делаю. – kneeki