У меня есть два следующих элемента div:
<div class='staticMap'></div>
<div class='geolocation-common-map'></div>
Div с именем 'геолокация-общая-карта' удаляется с помощью jQuery при загрузке страницы. Я хотел бы знать, как я могу снова загрузить этот div после нажатия div 'статическая карта'. Пока у меня есть следующий jQuery, но мне нужно заменить функцию .показывать().
$('.geolocation-common-map').remove();
$('.staticMap').on("click", function(event) {
$('.geolocation-common-map').show();
$('.staticMap').remove();
event.preventDefault();
});
Любые идеи, как это сделать?
Заранее спасибо.
@mplungjan Я не хочу, чтобы div загружался даже в HTML, поэтому показать/скрыть — это не то, что мне нужно.
Так где же ваш код для загрузки .geolocation-common-map?
почему бы вам не использовать hide() вместо remove()?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вместо remove() попробуйте toggle():
<div class='staticMap'></div>
<div class='geolocation-common-map'></div>
<script>
$(document).ready(function() {
$('.geolocation-common-map').hide();
$('.staticMap').on("click", function (event) {
$('.geolocation-common-map').toggle();
});
});
</script>
<!DOCTYPE html>
<html>
<head>
<title>Try jQuery Online</title>
<script src = "//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$('#geolocation').hide();
$("#staticMap").click(function(){
$('#geolocation').show();
});
});
</script>
<style>
.selected {
color:red;
}
.highlight {
background:yellow;
}
</style>
</head>
<body>
<div id = "staticMap" class='staticMap selected'>Static Map</div>
<div id = "geolocation" class='geolocation-common-map highlight'>Geolocation Map</div>
</body>
</html>Добавление идентификатора в ваш статический div или изменение идентификатора на класс в jquery сделает вашу работу. Вы используете staticMap как идентификатор, но он не определен в div.
Согласно отделить документацию:
The
.detach()method is the same as.remove(), except that.detach()keeps alljQuerydata associated with the removed elements. This method is useful when removed elements are to be reinserted into the DOM at a later time.
Вы можете использовать его следующим образом:
var dv_geolocation_common_map = $( ".geolocation-common-map" ).detach();
var dv_staticMap = $('.staticMap');
$('.staticMap').on("click", function(event) {
dv_geolocation_common_map.insertAfter(dv_staticMap)
dv_staticMap.detach();
event.preventDefault();
});.staticMap{
width:100px;
height:100px;
background-color:green;
}
.geolocation-common-map{
width:100px;
height:100px;
background-color:red;
}<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='staticMap'></div>
<div class='geolocation-common-map'></div>
В чем твоя проблема? Код выглядит хорошо для меня. Только не удаляйте .geolocation-common-map, а скройте его, как вы это делаете во фрагменте кода.