Html jquery中的appendTo替换旧div,而不是在其下添加新div
我对这个代码有问题。我试图将新的div(newGallery)和图片附加到div(gallery)中,但它仍然在替换旧的div(gallery) 你能告诉我怎么解决吗?我认为它在ajax函数中存在一些问题。我正在使用jqueryv3.5.1Html jquery中的appendTo替换旧div,而不是在其下添加新div,html,jquery,css,Html,Jquery,Css,我对这个代码有问题。我试图将新的div(newGallery)和图片附加到div(gallery)中,但它仍然在替换旧的div(gallery) 你能告诉我怎么解决吗?我认为它在ajax函数中存在一些问题。我正在使用jqueryv3.5.1 menu.on('click', 'a', function(event) { event.preventDefault(); var a = $(this), li = a.parent(), href
menu.on('click', 'a', function(event) {
event.preventDefault();
var a = $(this),
li = a.parent(),
href = a.attr('href'),
loadingImg = $('<img>', {src: 'img/5.svg', class: 'loading-img'}),
id = '#' + href.slice(0, -5),
isLoaded = gallery.find(id),
currentGallery = gallery.find('.gallery-set'),
galleries = $('.gallery-set');
if (li.hasClass('selected')) return;
li.addClass('selected')
.siblings().removeClass('selected');
//zobrazenie loading ikony pokial sa obsah nenacita
gallery.html(loadingImg).show();
gallery.find('div').fadeOut();
if ( galleries.attr("id") == id ) {
currentGallery.hide();
gallery.find(id).fadeIn();
} else {
loadNewGallery(href);
};
function loadNewGallery (href) {
var gallery = $('.gallery');
$.ajax({
url: href,
data: 'GET',
dataType: 'html',
// ak sa data nacitaju vykona sa funkcia v done
}).done( function( data ) {
var newGallery = $(data).find('.gallery-set');
//nacitany kus stranky cez ajax sa vlozi do gallery natrvalo
newGallery.appendTo(gallery);
// ak sa data nenacitaju vykona sa funkcia vo fail
}).fail( function() {
// sprava o zlyhani prenosu
var msg = $('<div>',{class: 'msg-fail'}),
msgText = 'Je nám ľúto, danú stránku sa nepodarilo zobraziť',
msgFail = msg.html(msgText);
gallery.html(msgFail);
// aj ked sa data nacitaju alebo nenacitaju vykona sa funkcia v always
}).always(function() {
// skrytie loading ikonky
loadingImg.hide();
});
};
});
menu.on('click','a',函数(事件){
event.preventDefault();
var a=$(此),
li=a.parent(),
href=a.attr('href'),
loadingImg=$('',{class:'msg fail'}),
msgText=‘我是诺曼托,但我是纳波达里罗·佐布拉齐’,
msgFail=msg.html(msgText);
html(msgFail);
//aj ked sa数据始终为v YKONA提供数据
}).always(函数(){
//skrytie加载ikonky
加载img.hide();
});
};
});
这样试试
const gallery = $('.gallery');
function loadNewGallery(href) {
$.ajax({
url: href,
data: 'GET',
dataType: 'html',
// ak sa data nacitaju vykona sa funkcia v done
}).done(function(data) {
var newGallery = $(data).find('.gallery-set');
//nacitany kus stranky cez ajax sa vlozi do gallery natrvalo
newGallery.appendTo(gallery);
// ak sa data nenacitaju vykona sa funkcia vo fail
}).fail(function() {
// sprava o zlyhani prenosu
var msg = $('<div>', {
class: 'msg-fail'
}),
msgText = 'Je nám ľúto, danú stránku sa nepodarilo zobraziť',
msgFail = msg.html(msgText);
gallery.html(msgFail);
// aj ked sa data nacitaju alebo nenacitaju vykona sa funkcia v always
}).always(function() {
// skrytie loading ikonky
loadingImg.hide();
});
};
menu.on('click', 'a', function(event) {
event.preventDefault();
var a = $(this),
li = a.parent(),
href = a.attr('href'),
loadingImg = $('<img>', {
src: 'img/5.svg',
class: 'loading-img'
}),
id = '#' + href.slice(0, -5),
isLoaded = gallery.find(id),
currentGallery = gallery.find('.gallery-set'),
galleries = $('.gallery-set');
if (li.hasClass('selected')) return;
li.addClass('selected')
.siblings().removeClass('selected');
//zobrazenie loading ikony pokial sa obsah nenacita
gallery.html(loadingImg).show();
gallery.find('div').fadeOut();
if (galleries.attr("id") == id) {
currentGallery.hide();
gallery.find(id).fadeIn();
} else {
loadNewGallery(href);
};
});
const gallery=$('.gallery');
函数loadNewGallery(href){
$.ajax({
url:href,
数据:'获取',
数据类型:“html”,
//ak sa数据已完成
}).完成(功能(数据){
var newGallery=$(数据).find('.gallery set');
//nacitany kus stranky cez ajax sa vlozi do画廊Nartvalo
新画廊。附录(画廊);
//ak sa数据显示,vykona sa funkcia vo失败
}).fail(函数(){
//斯普拉瓦·奥兹利哈尼·普雷诺苏
var msg=$(''){
类:“msg失败”
}),
msgText=‘我是诺曼托,但我是纳波达里罗·佐布拉齐’,
msgFail=msg.html(msgText);
html(msgFail);
//aj ked sa数据始终为v YKONA提供数据
}).always(函数(){
//skrytie加载ikonky
加载img.hide();
});
};
菜单.在('click','a',函数(事件){
event.preventDefault();
var a=$(此),
li=a.parent(),
href=a.attr('href'),
loadingImg=$('这样试试
const gallery = $('.gallery');
function loadNewGallery(href) {
$.ajax({
url: href,
data: 'GET',
dataType: 'html',
// ak sa data nacitaju vykona sa funkcia v done
}).done(function(data) {
var newGallery = $(data).find('.gallery-set');
//nacitany kus stranky cez ajax sa vlozi do gallery natrvalo
newGallery.appendTo(gallery);
// ak sa data nenacitaju vykona sa funkcia vo fail
}).fail(function() {
// sprava o zlyhani prenosu
var msg = $('<div>', {
class: 'msg-fail'
}),
msgText = 'Je nám ľúto, danú stránku sa nepodarilo zobraziť',
msgFail = msg.html(msgText);
gallery.html(msgFail);
// aj ked sa data nacitaju alebo nenacitaju vykona sa funkcia v always
}).always(function() {
// skrytie loading ikonky
loadingImg.hide();
});
};
menu.on('click', 'a', function(event) {
event.preventDefault();
var a = $(this),
li = a.parent(),
href = a.attr('href'),
loadingImg = $('<img>', {
src: 'img/5.svg',
class: 'loading-img'
}),
id = '#' + href.slice(0, -5),
isLoaded = gallery.find(id),
currentGallery = gallery.find('.gallery-set'),
galleries = $('.gallery-set');
if (li.hasClass('selected')) return;
li.addClass('selected')
.siblings().removeClass('selected');
//zobrazenie loading ikony pokial sa obsah nenacita
gallery.html(loadingImg).show();
gallery.find('div').fadeOut();
if (galleries.attr("id") == id) {
currentGallery.hide();
gallery.find(id).fadeIn();
} else {
loadNewGallery(href);
};
});
const gallery=$('.gallery');
函数loadNewGallery(href){
$.ajax({
url:href,
数据:'获取',
数据类型:“html”,
//ak sa数据已完成
}).完成(功能(数据){
var newGallery=$(数据).find('.gallery set');
//nacitany kus stranky cez ajax sa vlozi do画廊Nartvalo
新画廊。附录(画廊);
//ak sa数据显示,vykona sa funkcia vo失败
}).fail(函数(){
//斯普拉瓦·奥兹利哈尼·普雷诺苏
var msg=$(''){
类:“msg失败”
}),
msgText=‘我是诺曼托,但我是纳波达里罗·佐布拉齐’,
msgFail=msg.html(msgText);
html(msgFail);
//aj ked sa数据始终为v YKONA提供数据
}).always(函数(){
//skrytie加载ikonky
加载img.hide();
});
};
菜单.在('click','a',函数(事件){
event.preventDefault();
var a=$(此),
li=a.parent(),
href=a.attr('href'),
加载img=$(“如果你能更详细地解释你的答案就好了。例如:你做了什么改变,为什么上面的代码会起作用。。。etc@Swatigallery
是在问题中的脚本片段中定义之前使用的。我只是在gallery
元素中使用了const
,将函数从单击中删除nt…仅此而已。编写代码的方式应附加到gallery
中。我的主要反对意见是失败,其中消息完全更改gallery
元素的innerHTML
。感谢您的回答,但它对我无效。它仍在覆盖一个div元素在gallery内部。@user2623507您是否也可以添加ajax调用中返回的典型HTML。正如我所见,您可以从ajax调用返回的数据中获得新的gallery集。此外,还有一些代码可以帮助重新创建问题(例如,添加gallery的HTML)@PeterDarmis我已经发现了问题。当我替换html()时,这个命令给gallery.html(loadingImg.show())带来了麻烦对于appendTo来说没问题。谢谢大家的帮助。如果你能更多地解释你的答案就好了。例如:你做了什么更改,为什么上面的代码可以工作。。。etc@Swatigallery
在问题中出现的脚本片段中定义之前使用。我只是对gallery
元素使用了const
,删除了功能退出点击事件…仅此而已。编写代码的方式newGallery
应附加到gallery
。我的主要反对意见是fail
消息完全更改gallery
元素的innerHTML
。感谢您的回答,但它对我不起作用。它仍在覆盖gallery中的一个div元素。@user2623507您是否也可以添加ajax调用中返回的典型HTML。正如我所见,您可以从ajax调用返回的数据中获得新的gallery集。此外,还有一些代码可以帮助重新创建该问题(例如,添加gallery的HTML)@PeterDarmis我已经发现了问题。这个命令给gallery.html(loadingImg.show();当我将html()替换为appendTo时,它就可以了。谢谢大家的帮助。