Insert Popup message programmatically using leaflet js









up vote
0
down vote

favorite












I'm having a difficult time trying to figure out how I can display the marker with a pop up message programmatically using leaftlet js.



The class country-pop-up-message is the pop up message I want to be displayed for each marker when looped.



<ul class="countries">
<li class="country">
<span class="country-name">Philippines</span>
<div class="country-pop-up-message">
<h2 class="population">Population: 200</h2>
<p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

</div>
</li>
<li class="country">
<span class="country-name">Brunei</span>
<div class="country-pop-up-message">
<h2 class="population">Population: 200</h2>
<p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

</div>
</li>
<li class="country">
<span class="country-name">Malaysia</span>
<div class="country-pop-up-message">
<h2 class="population">Population: 300</h2>
<p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

</div>
</li>

</ul>





 var map = L.map('mapid', 

fullscreenControl:
pseudoFullscreen: false // if true, fullscreen to page width and height
,

).setView([0,0], 3);

map.createPane('labels');
map.getPane('labels').style.zIndex = 650;
map.getPane('labels').style.pointerEvents = 'none';

var positron = L.tileLayer('https://s.tile.openstreetmap.org/z/x/y.png',
noWrap: true,
maxZoom : 15
).addTo(map);

var positronLabels = L.tileLayer('http://s.basemaps.cartocdn.com/light_only_labels/z/x/y.png',
pane: 'labels',
noWrap: true,
maxZoom : 3
).addTo(map);


var southWest = L.latLng(-89.98155760646617, -180),
northEast = L.latLng(89.99346179538875, 180),
bounds = L.latLngBounds(southWest, northEast);

map.setMaxBounds(bounds);
map.on('drag', function()
map.panInsideBounds(bounds, animate: false );
);


geocoder = new L.Control.Geocoder.Nominatim();

var countries = ;
var markers = ;

var markerCluster = L.markerClusterGroup(
spiderfyOnMaxZoom: false,
showCoverageOnHover: false,
// zoomToBoundsOnClick: false
);



$('.countries > .country > .country-name').each(function()
countries.push([
$(this).text()
]);
);



for(var i = 0; i < countries.length; i++)

geocoder.geocode(countries[i], function(results)
console.log(countries[i]);
var latLng = new L.LatLng(results[0].center.lat, results[0].center.lng);
marker = L.marker(latLng);


markers.push(marker);
markerCluster.addLayer(marker);
);


markerCluster.on('clusterclick', function (a)
);
map.addLayer(markerCluster);

/* http://meyerweb.com/eric/tools/css/reset/ 
v2.0 | 20110126
License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section
display: block;

body
line-height: 1;

ol, ul
list-style: none;

blockquote, q
quotes: none;

blockquote:before, blockquote:after,
q:before, q:after
content: '';
content: none;

table
border-collapse: collapse;
border-spacing: 0;


/* required styles */

.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer
position: absolute;
left: 0;
top: 0;

.leaflet-container
overflow: hidden;

.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
-webkit-user-drag: none;

/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
.leaflet-safari .leaflet-tile
image-rendering: -webkit-optimize-contrast;

/* hack that prevents hw layers "stretching" when loading new tiles */
.leaflet-safari .leaflet-tile-container
width: 1600px;
height: 1600px;
-webkit-transform-origin: 0 0;

.leaflet-marker-icon,
.leaflet-marker-shadow
display: block;

/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
.leaflet-container .leaflet-overlay-pane svg,
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile
max-width: none !important;
max-height: none !important;


.leaflet-container.leaflet-touch-zoom
-ms-touch-action: pan-x pan-y;
touch-action: pan-x pan-y;

.leaflet-container.leaflet-touch-drag
-ms-touch-action: pinch-zoom;
/* Fallback for FF which doesn't support pinch-zoom */
touch-action: none;
touch-action: pinch-zoom;

.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom
-ms-touch-action: none;
touch-action: none;

.leaflet-container
-webkit-tap-highlight-color: transparent;

.leaflet-container a
-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);

.leaflet-tile
filter: inherit;
visibility: hidden;

.leaflet-tile-loaded
visibility: inherit;

.leaflet-zoom-box
width: 0;
height: 0;
-moz-box-sizing: border-box;
box-sizing: border-box;
z-index: 800;

/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
.leaflet-overlay-pane svg
-moz-user-select: none;


.leaflet-pane z-index: 400;

.leaflet-tile-pane z-index: 200;
.leaflet-overlay-pane z-index: 400;
.leaflet-shadow-pane z-index: 500;
.leaflet-marker-pane z-index: 600;
.leaflet-tooltip-pane z-index: 650;
.leaflet-popup-pane z-index: 700;

.leaflet-map-pane canvas z-index: 100;
.leaflet-map-pane svg z-index: 200;

.leaflet-vml-shape
width: 1px;
height: 1px;

.lvml
behavior: url(#default#VML);
display: inline-block;
position: absolute;



/* control positioning */

.leaflet-control
position: relative;
z-index: 800;
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
pointer-events: auto;

.leaflet-top,
.leaflet-bottom
position: absolute;
z-index: 1000;
pointer-events: none;

.leaflet-top
top: 0;

.leaflet-right
right: 0;

.leaflet-bottom
bottom: 0;

.leaflet-left
left: 0;

.leaflet-control
float: left;
clear: both;

.leaflet-right .leaflet-control
float: right;

.leaflet-top .leaflet-control
margin-top: 10px;

.leaflet-bottom .leaflet-control
margin-bottom: 10px;

.leaflet-left .leaflet-control
margin-left: 10px;

.leaflet-right .leaflet-control
margin-right: 10px;



/* zoom and fade animations */

.leaflet-fade-anim .leaflet-tile
will-change: opacity;

.leaflet-fade-anim .leaflet-popup
opacity: 0;
-webkit-transition: opacity 0.2s linear;
-moz-transition: opacity 0.2s linear;
transition: opacity 0.2s linear;

.leaflet-fade-anim .leaflet-map-pane .leaflet-popup
opacity: 1;

.leaflet-zoom-animated
-webkit-transform-origin: 0 0;
-ms-transform-origin: 0 0;
transform-origin: 0 0;

.leaflet-zoom-anim .leaflet-zoom-animated
will-change: transform;

.leaflet-zoom-anim .leaflet-zoom-animated
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
-moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
transition: transform 0.25s cubic-bezier(0,0,0.25,1);

.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile
-webkit-transition: none;
-moz-transition: none;
transition: none;


.leaflet-zoom-anim .leaflet-zoom-hide
visibility: hidden;



/* cursors */

.leaflet-interactive
cursor: pointer;

.leaflet-grab
cursor: -webkit-grab;
cursor: -moz-grab;
cursor: grab;

.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive
cursor: crosshair;

.leaflet-popup-pane,
.leaflet-control
cursor: auto;

.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable
cursor: move;
cursor: -webkit-grabbing;
cursor: -moz-grabbing;
cursor: grabbing;


/* marker & overlays interactivity */
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container
pointer-events: none;


.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
pointer-events: auto;


/* visual tweaks */

.leaflet-container
background: #ddd;
outline: 0;

.leaflet-container a
color: #0078A8;

.leaflet-container a.leaflet-active
outline: 2px solid orange;

.leaflet-zoom-box
border: 2px dotted #38f;
background: rgba(255,255,255,0.5);



/* general typography */
.leaflet-container
font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;



/* general toolbar styles */

.leaflet-bar
box-shadow: 0 1px 5px rgba(0,0,0,0.65);
border-radius: 4px;

.leaflet-bar a,
.leaflet-bar a:hover
background-color: #fff;
border-bottom: 1px solid #ccc;
width: 26px;
height: 26px;
line-height: 26px;
display: block;
text-align: center;
text-decoration: none;
color: black;

.leaflet-bar a,
.leaflet-control-layers-toggle
background-position: 50% 50%;
background-repeat: no-repeat;
display: block;

.leaflet-bar a:hover
background-color: #f4f4f4;

.leaflet-bar a:first-child
border-top-left-radius: 4px;
border-top-right-radius: 4px;

.leaflet-bar a:last-child
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
border-bottom: none;

.leaflet-bar a.leaflet-disabled
cursor: default;
background-color: #f4f4f4;
color: #bbb;


.leaflet-touch .leaflet-bar a
width: 30px;
height: 30px;
line-height: 30px;

.leaflet-touch .leaflet-bar a:first-child
border-top-left-radius: 2px;
border-top-right-radius: 2px;

.leaflet-touch .leaflet-bar a:last-child
border-bottom-left-radius: 2px;
border-bottom-right-radius: 2px;


/* zoom control */

.leaflet-control-zoom-in,
.leaflet-control-zoom-out
font: bold 18px 'Lucida Console', Monaco, monospace;
text-indent: 1px;


.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out
font-size: 22px;



/* layers control */

.leaflet-control-layers
box-shadow: 0 1px 5px rgba(0,0,0,0.4);
background: #fff;
border-radius: 5px;

.leaflet-control-layers-toggle
background-image: url(images/layers.png);
width: 36px;
height: 36px;

.leaflet-retina .leaflet-control-layers-toggle
background-image: url(images/layers-2x.png);
background-size: 26px 26px;

.leaflet-touch .leaflet-control-layers-toggle
width: 44px;
height: 44px;

.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle
display: none;

.leaflet-control-layers-expanded .leaflet-control-layers-list
display: block;
position: relative;

.leaflet-control-layers-expanded
padding: 6px 10px 6px 6px;
color: #333;
background: #fff;

.leaflet-control-layers-scrollbar
overflow-y: scroll;
overflow-x: hidden;
padding-right: 5px;

.leaflet-control-layers-selector
margin-top: 2px;
position: relative;
top: 1px;

.leaflet-control-layers label
display: block;

.leaflet-control-layers-separator
height: 0;
border-top: 1px solid #ddd;
margin: 5px -10px 5px -6px;


/* Default icon URLs */
.leaflet-default-icon-path
background-image: url(images/marker-icon.png);



/* attribution and scale controls */

.leaflet-container .leaflet-control-attribution
background: #fff;
background: rgba(255, 255, 255, 0.7);
margin: 0;

.leaflet-control-attribution,
.leaflet-control-scale-line
padding: 0 5px;
color: #333;

.leaflet-control-attribution a
text-decoration: none;

.leaflet-control-attribution a:hover
text-decoration: underline;

.leaflet-container .leaflet-control-attribution,
.leaflet-container .leaflet-control-scale
font-size: 11px;

.leaflet-left .leaflet-control-scale
margin-left: 5px;

.leaflet-bottom .leaflet-control-scale
margin-bottom: 5px;

.leaflet-control-scale-line
border: 2px solid #777;
border-top: none;
line-height: 1.1;
padding: 2px 5px 1px;
font-size: 11px;
white-space: nowrap;
overflow: hidden;
-moz-box-sizing: border-box;
box-sizing: border-box;

background: #fff;
background: rgba(255, 255, 255, 0.5);

.leaflet-control-scale-line:not(:first-child)
border-top: 2px solid #777;
border-bottom: none;
margin-top: -2px;

.leaflet-control-scale-line:not(:first-child):not(:last-child)
border-bottom: 2px solid #777;


.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar
box-shadow: none;

.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar
border: 2px solid rgba(0,0,0,0.2);
background-clip: padding-box;



/* popup */

.leaflet-popup
position: absolute;
text-align: center;
margin-bottom: 20px;

.leaflet-popup-content-wrapper
padding: 1px;
text-align: left;
border-radius: 12px;

.leaflet-popup-content
margin: 13px 19px;
line-height: 1.4;

.leaflet-popup-content p
margin: 18px 0;

.leaflet-popup-tip-container
width: 40px;
height: 20px;
position: absolute;
left: 50%;
margin-left: -20px;
overflow: hidden;
pointer-events: none;

.leaflet-popup-tip
width: 17px;
height: 17px;
padding: 1px;

margin: -10px auto 0;

-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);

.leaflet-popup-content-wrapper,
.leaflet-popup-tip
background: white;
color: #333;
box-shadow: 0 3px 14px rgba(0,0,0,0.4);

.leaflet-container a.leaflet-popup-close-button
position: absolute;
top: 0;
right: 0;
padding: 4px 4px 0 0;
border: none;
text-align: center;
width: 18px;
height: 14px;
font: 16px/14px Tahoma, Verdana, sans-serif;
color: #c3c3c3;
text-decoration: none;
font-weight: bold;
background: transparent;

.leaflet-container a.leaflet-popup-close-button:hover
color: #999;

.leaflet-popup-scrolled
overflow: auto;
border-bottom: 1px solid #ddd;
border-top: 1px solid #ddd;


.leaflet-oldie .leaflet-popup-content-wrapper
zoom: 1;

.leaflet-oldie .leaflet-popup-tip
width: 24px;
margin: 0 auto;

-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);

.leaflet-oldie .leaflet-popup-tip-container
margin-top: -1px;


.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip
border: 1px solid #999;



/* div icon */

.leaflet-div-icon
background: #fff;
border: 1px solid #666;



/* Tooltip */
/* Base styles for the element that has a tooltip */
.leaflet-tooltip
position: absolute;
padding: 6px;
background-color: #fff;
border: 1px solid #fff;
border-radius: 3px;
color: #222;
white-space: nowrap;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
pointer-events: none;
box-shadow: 0 1px 3px rgba(0,0,0,0.4);

.leaflet-tooltip.leaflet-clickable
cursor: pointer;
pointer-events: auto;

.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before
position: absolute;
pointer-events: none;
border: 6px solid transparent;
background: transparent;
content: "";


/* Directions */

.leaflet-tooltip-bottom
margin-top: 6px;

.leaflet-tooltip-top
margin-top: -6px;

.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before
left: 50%;
margin-left: -6px;

.leaflet-tooltip-top:before
bottom: 0;
margin-bottom: -12px;
border-top-color: #fff;

.leaflet-tooltip-bottom:before
top: 0;
margin-top: -12px;
margin-left: -6px;
border-bottom-color: #fff;

.leaflet-tooltip-left
margin-left: -6px;

.leaflet-tooltip-right
margin-left: 6px;

.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before
top: 50%;
margin-top: -6px;

.leaflet-tooltip-left:before
right: 0;
margin-right: -12px;
border-left-color: #fff;

.leaflet-tooltip-right:before
left: 0;
margin-left: -12px;
border-right-color: #fff;




html, body
width : 100%;
height : 100%;


.map-container
width : 100%;
height : 100%;


 <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.4/dist/leaflet.css"
/>
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.Default.css" />

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js" ></script>
<script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js"
></script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBet5Wx-JdSc4cY4v4zR6_FIhYc2oWgTv4"
type="text/javascript"></script>
<script src="https://unpkg.com/leaflet-control-geocoder/dist/Control.Geocoder.js" ></script>
<script src='https://unpkg.com/leaflet.gridlayer.googlemutant@latest/Leaflet.GoogleMutant.js'></script>
<script src="https://unpkg.com/leaflet.markercluster@1.4.1/dist/leaflet.markercluster-src.js"></script>

<div class="map-container" id="mapid"></div>

<ul class="countries">
<li class="country">
<span class="country-name">Philippines</span>
<div class="country-pop-up-message">
<h2 class="population">Population: 200</h2>
<p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

</div>
</li>
<li class="country">
<span class="country-name">Brunei</span>
<div class="country-pop-up-message">
<h2 class="population">Population: 200</h2>
<p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

</div>
</li>
<li class="country">
<span class="country-name">Malaysia</span>
<div class="country-pop-up-message">
<h2 class="population">Population: 300</h2>
<p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

</div>
</li>

</ul>












share|improve this question

























    up vote
    0
    down vote

    favorite












    I'm having a difficult time trying to figure out how I can display the marker with a pop up message programmatically using leaftlet js.



    The class country-pop-up-message is the pop up message I want to be displayed for each marker when looped.



    <ul class="countries">
    <li class="country">
    <span class="country-name">Philippines</span>
    <div class="country-pop-up-message">
    <h2 class="population">Population: 200</h2>
    <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

    </div>
    </li>
    <li class="country">
    <span class="country-name">Brunei</span>
    <div class="country-pop-up-message">
    <h2 class="population">Population: 200</h2>
    <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

    </div>
    </li>
    <li class="country">
    <span class="country-name">Malaysia</span>
    <div class="country-pop-up-message">
    <h2 class="population">Population: 300</h2>
    <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

    </div>
    </li>

    </ul>





     var map = L.map('mapid', 

    fullscreenControl:
    pseudoFullscreen: false // if true, fullscreen to page width and height
    ,

    ).setView([0,0], 3);

    map.createPane('labels');
    map.getPane('labels').style.zIndex = 650;
    map.getPane('labels').style.pointerEvents = 'none';

    var positron = L.tileLayer('https://s.tile.openstreetmap.org/z/x/y.png',
    noWrap: true,
    maxZoom : 15
    ).addTo(map);

    var positronLabels = L.tileLayer('http://s.basemaps.cartocdn.com/light_only_labels/z/x/y.png',
    pane: 'labels',
    noWrap: true,
    maxZoom : 3
    ).addTo(map);


    var southWest = L.latLng(-89.98155760646617, -180),
    northEast = L.latLng(89.99346179538875, 180),
    bounds = L.latLngBounds(southWest, northEast);

    map.setMaxBounds(bounds);
    map.on('drag', function()
    map.panInsideBounds(bounds, animate: false );
    );


    geocoder = new L.Control.Geocoder.Nominatim();

    var countries = ;
    var markers = ;

    var markerCluster = L.markerClusterGroup(
    spiderfyOnMaxZoom: false,
    showCoverageOnHover: false,
    // zoomToBoundsOnClick: false
    );



    $('.countries > .country > .country-name').each(function()
    countries.push([
    $(this).text()
    ]);
    );



    for(var i = 0; i < countries.length; i++)

    geocoder.geocode(countries[i], function(results)
    console.log(countries[i]);
    var latLng = new L.LatLng(results[0].center.lat, results[0].center.lng);
    marker = L.marker(latLng);


    markers.push(marker);
    markerCluster.addLayer(marker);
    );


    markerCluster.on('clusterclick', function (a)
    );
    map.addLayer(markerCluster);

    /* http://meyerweb.com/eric/tools/css/reset/ 
    v2.0 | 20110126
    License: none (public domain)
    */

    html, body, div, span, applet, object, iframe,
    h1, h2, h3, h4, h5, h6, p, blockquote, pre,
    a, abbr, acronym, address, big, cite, code,
    del, dfn, em, img, ins, kbd, q, s, samp,
    small, strike, strong, sub, sup, tt, var,
    b, u, i, center,
    dl, dt, dd, ol, ul, li,
    fieldset, form, label, legend,
    table, caption, tbody, tfoot, thead, tr, th, td,
    article, aside, canvas, details, embed,
    figure, figcaption, footer, header, hgroup,
    menu, nav, output, ruby, section, summary,
    time, mark, audio, video
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;

    /* HTML5 display-role reset for older browsers */
    article, aside, details, figcaption, figure,
    footer, header, hgroup, menu, nav, section
    display: block;

    body
    line-height: 1;

    ol, ul
    list-style: none;

    blockquote, q
    quotes: none;

    blockquote:before, blockquote:after,
    q:before, q:after
    content: '';
    content: none;

    table
    border-collapse: collapse;
    border-spacing: 0;


    /* required styles */

    .leaflet-pane,
    .leaflet-tile,
    .leaflet-marker-icon,
    .leaflet-marker-shadow,
    .leaflet-tile-container,
    .leaflet-pane > svg,
    .leaflet-pane > canvas,
    .leaflet-zoom-box,
    .leaflet-image-layer,
    .leaflet-layer
    position: absolute;
    left: 0;
    top: 0;

    .leaflet-container
    overflow: hidden;

    .leaflet-tile,
    .leaflet-marker-icon,
    .leaflet-marker-shadow
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    -webkit-user-drag: none;

    /* Safari renders non-retina tile on retina better with this, but Chrome is worse */
    .leaflet-safari .leaflet-tile
    image-rendering: -webkit-optimize-contrast;

    /* hack that prevents hw layers "stretching" when loading new tiles */
    .leaflet-safari .leaflet-tile-container
    width: 1600px;
    height: 1600px;
    -webkit-transform-origin: 0 0;

    .leaflet-marker-icon,
    .leaflet-marker-shadow
    display: block;

    /* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
    /* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
    .leaflet-container .leaflet-overlay-pane svg,
    .leaflet-container .leaflet-marker-pane img,
    .leaflet-container .leaflet-shadow-pane img,
    .leaflet-container .leaflet-tile-pane img,
    .leaflet-container img.leaflet-image-layer,
    .leaflet-container .leaflet-tile
    max-width: none !important;
    max-height: none !important;


    .leaflet-container.leaflet-touch-zoom
    -ms-touch-action: pan-x pan-y;
    touch-action: pan-x pan-y;

    .leaflet-container.leaflet-touch-drag
    -ms-touch-action: pinch-zoom;
    /* Fallback for FF which doesn't support pinch-zoom */
    touch-action: none;
    touch-action: pinch-zoom;

    .leaflet-container.leaflet-touch-drag.leaflet-touch-zoom
    -ms-touch-action: none;
    touch-action: none;

    .leaflet-container
    -webkit-tap-highlight-color: transparent;

    .leaflet-container a
    -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);

    .leaflet-tile
    filter: inherit;
    visibility: hidden;

    .leaflet-tile-loaded
    visibility: inherit;

    .leaflet-zoom-box
    width: 0;
    height: 0;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    z-index: 800;

    /* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
    .leaflet-overlay-pane svg
    -moz-user-select: none;


    .leaflet-pane z-index: 400;

    .leaflet-tile-pane z-index: 200;
    .leaflet-overlay-pane z-index: 400;
    .leaflet-shadow-pane z-index: 500;
    .leaflet-marker-pane z-index: 600;
    .leaflet-tooltip-pane z-index: 650;
    .leaflet-popup-pane z-index: 700;

    .leaflet-map-pane canvas z-index: 100;
    .leaflet-map-pane svg z-index: 200;

    .leaflet-vml-shape
    width: 1px;
    height: 1px;

    .lvml
    behavior: url(#default#VML);
    display: inline-block;
    position: absolute;



    /* control positioning */

    .leaflet-control
    position: relative;
    z-index: 800;
    pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
    pointer-events: auto;

    .leaflet-top,
    .leaflet-bottom
    position: absolute;
    z-index: 1000;
    pointer-events: none;

    .leaflet-top
    top: 0;

    .leaflet-right
    right: 0;

    .leaflet-bottom
    bottom: 0;

    .leaflet-left
    left: 0;

    .leaflet-control
    float: left;
    clear: both;

    .leaflet-right .leaflet-control
    float: right;

    .leaflet-top .leaflet-control
    margin-top: 10px;

    .leaflet-bottom .leaflet-control
    margin-bottom: 10px;

    .leaflet-left .leaflet-control
    margin-left: 10px;

    .leaflet-right .leaflet-control
    margin-right: 10px;



    /* zoom and fade animations */

    .leaflet-fade-anim .leaflet-tile
    will-change: opacity;

    .leaflet-fade-anim .leaflet-popup
    opacity: 0;
    -webkit-transition: opacity 0.2s linear;
    -moz-transition: opacity 0.2s linear;
    transition: opacity 0.2s linear;

    .leaflet-fade-anim .leaflet-map-pane .leaflet-popup
    opacity: 1;

    .leaflet-zoom-animated
    -webkit-transform-origin: 0 0;
    -ms-transform-origin: 0 0;
    transform-origin: 0 0;

    .leaflet-zoom-anim .leaflet-zoom-animated
    will-change: transform;

    .leaflet-zoom-anim .leaflet-zoom-animated
    -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
    -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
    transition: transform 0.25s cubic-bezier(0,0,0.25,1);

    .leaflet-zoom-anim .leaflet-tile,
    .leaflet-pan-anim .leaflet-tile
    -webkit-transition: none;
    -moz-transition: none;
    transition: none;


    .leaflet-zoom-anim .leaflet-zoom-hide
    visibility: hidden;



    /* cursors */

    .leaflet-interactive
    cursor: pointer;

    .leaflet-grab
    cursor: -webkit-grab;
    cursor: -moz-grab;
    cursor: grab;

    .leaflet-crosshair,
    .leaflet-crosshair .leaflet-interactive
    cursor: crosshair;

    .leaflet-popup-pane,
    .leaflet-control
    cursor: auto;

    .leaflet-dragging .leaflet-grab,
    .leaflet-dragging .leaflet-grab .leaflet-interactive,
    .leaflet-dragging .leaflet-marker-draggable
    cursor: move;
    cursor: -webkit-grabbing;
    cursor: -moz-grabbing;
    cursor: grabbing;


    /* marker & overlays interactivity */
    .leaflet-marker-icon,
    .leaflet-marker-shadow,
    .leaflet-image-layer,
    .leaflet-pane > svg path,
    .leaflet-tile-container
    pointer-events: none;


    .leaflet-marker-icon.leaflet-interactive,
    .leaflet-image-layer.leaflet-interactive,
    .leaflet-pane > svg path.leaflet-interactive
    pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
    pointer-events: auto;


    /* visual tweaks */

    .leaflet-container
    background: #ddd;
    outline: 0;

    .leaflet-container a
    color: #0078A8;

    .leaflet-container a.leaflet-active
    outline: 2px solid orange;

    .leaflet-zoom-box
    border: 2px dotted #38f;
    background: rgba(255,255,255,0.5);



    /* general typography */
    .leaflet-container
    font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;



    /* general toolbar styles */

    .leaflet-bar
    box-shadow: 0 1px 5px rgba(0,0,0,0.65);
    border-radius: 4px;

    .leaflet-bar a,
    .leaflet-bar a:hover
    background-color: #fff;
    border-bottom: 1px solid #ccc;
    width: 26px;
    height: 26px;
    line-height: 26px;
    display: block;
    text-align: center;
    text-decoration: none;
    color: black;

    .leaflet-bar a,
    .leaflet-control-layers-toggle
    background-position: 50% 50%;
    background-repeat: no-repeat;
    display: block;

    .leaflet-bar a:hover
    background-color: #f4f4f4;

    .leaflet-bar a:first-child
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;

    .leaflet-bar a:last-child
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    border-bottom: none;

    .leaflet-bar a.leaflet-disabled
    cursor: default;
    background-color: #f4f4f4;
    color: #bbb;


    .leaflet-touch .leaflet-bar a
    width: 30px;
    height: 30px;
    line-height: 30px;

    .leaflet-touch .leaflet-bar a:first-child
    border-top-left-radius: 2px;
    border-top-right-radius: 2px;

    .leaflet-touch .leaflet-bar a:last-child
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 2px;


    /* zoom control */

    .leaflet-control-zoom-in,
    .leaflet-control-zoom-out
    font: bold 18px 'Lucida Console', Monaco, monospace;
    text-indent: 1px;


    .leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out
    font-size: 22px;



    /* layers control */

    .leaflet-control-layers
    box-shadow: 0 1px 5px rgba(0,0,0,0.4);
    background: #fff;
    border-radius: 5px;

    .leaflet-control-layers-toggle
    background-image: url(images/layers.png);
    width: 36px;
    height: 36px;

    .leaflet-retina .leaflet-control-layers-toggle
    background-image: url(images/layers-2x.png);
    background-size: 26px 26px;

    .leaflet-touch .leaflet-control-layers-toggle
    width: 44px;
    height: 44px;

    .leaflet-control-layers .leaflet-control-layers-list,
    .leaflet-control-layers-expanded .leaflet-control-layers-toggle
    display: none;

    .leaflet-control-layers-expanded .leaflet-control-layers-list
    display: block;
    position: relative;

    .leaflet-control-layers-expanded
    padding: 6px 10px 6px 6px;
    color: #333;
    background: #fff;

    .leaflet-control-layers-scrollbar
    overflow-y: scroll;
    overflow-x: hidden;
    padding-right: 5px;

    .leaflet-control-layers-selector
    margin-top: 2px;
    position: relative;
    top: 1px;

    .leaflet-control-layers label
    display: block;

    .leaflet-control-layers-separator
    height: 0;
    border-top: 1px solid #ddd;
    margin: 5px -10px 5px -6px;


    /* Default icon URLs */
    .leaflet-default-icon-path
    background-image: url(images/marker-icon.png);



    /* attribution and scale controls */

    .leaflet-container .leaflet-control-attribution
    background: #fff;
    background: rgba(255, 255, 255, 0.7);
    margin: 0;

    .leaflet-control-attribution,
    .leaflet-control-scale-line
    padding: 0 5px;
    color: #333;

    .leaflet-control-attribution a
    text-decoration: none;

    .leaflet-control-attribution a:hover
    text-decoration: underline;

    .leaflet-container .leaflet-control-attribution,
    .leaflet-container .leaflet-control-scale
    font-size: 11px;

    .leaflet-left .leaflet-control-scale
    margin-left: 5px;

    .leaflet-bottom .leaflet-control-scale
    margin-bottom: 5px;

    .leaflet-control-scale-line
    border: 2px solid #777;
    border-top: none;
    line-height: 1.1;
    padding: 2px 5px 1px;
    font-size: 11px;
    white-space: nowrap;
    overflow: hidden;
    -moz-box-sizing: border-box;
    box-sizing: border-box;

    background: #fff;
    background: rgba(255, 255, 255, 0.5);

    .leaflet-control-scale-line:not(:first-child)
    border-top: 2px solid #777;
    border-bottom: none;
    margin-top: -2px;

    .leaflet-control-scale-line:not(:first-child):not(:last-child)
    border-bottom: 2px solid #777;


    .leaflet-touch .leaflet-control-attribution,
    .leaflet-touch .leaflet-control-layers,
    .leaflet-touch .leaflet-bar
    box-shadow: none;

    .leaflet-touch .leaflet-control-layers,
    .leaflet-touch .leaflet-bar
    border: 2px solid rgba(0,0,0,0.2);
    background-clip: padding-box;



    /* popup */

    .leaflet-popup
    position: absolute;
    text-align: center;
    margin-bottom: 20px;

    .leaflet-popup-content-wrapper
    padding: 1px;
    text-align: left;
    border-radius: 12px;

    .leaflet-popup-content
    margin: 13px 19px;
    line-height: 1.4;

    .leaflet-popup-content p
    margin: 18px 0;

    .leaflet-popup-tip-container
    width: 40px;
    height: 20px;
    position: absolute;
    left: 50%;
    margin-left: -20px;
    overflow: hidden;
    pointer-events: none;

    .leaflet-popup-tip
    width: 17px;
    height: 17px;
    padding: 1px;

    margin: -10px auto 0;

    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);

    .leaflet-popup-content-wrapper,
    .leaflet-popup-tip
    background: white;
    color: #333;
    box-shadow: 0 3px 14px rgba(0,0,0,0.4);

    .leaflet-container a.leaflet-popup-close-button
    position: absolute;
    top: 0;
    right: 0;
    padding: 4px 4px 0 0;
    border: none;
    text-align: center;
    width: 18px;
    height: 14px;
    font: 16px/14px Tahoma, Verdana, sans-serif;
    color: #c3c3c3;
    text-decoration: none;
    font-weight: bold;
    background: transparent;

    .leaflet-container a.leaflet-popup-close-button:hover
    color: #999;

    .leaflet-popup-scrolled
    overflow: auto;
    border-bottom: 1px solid #ddd;
    border-top: 1px solid #ddd;


    .leaflet-oldie .leaflet-popup-content-wrapper
    zoom: 1;

    .leaflet-oldie .leaflet-popup-tip
    width: 24px;
    margin: 0 auto;

    -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
    filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);

    .leaflet-oldie .leaflet-popup-tip-container
    margin-top: -1px;


    .leaflet-oldie .leaflet-control-zoom,
    .leaflet-oldie .leaflet-control-layers,
    .leaflet-oldie .leaflet-popup-content-wrapper,
    .leaflet-oldie .leaflet-popup-tip
    border: 1px solid #999;



    /* div icon */

    .leaflet-div-icon
    background: #fff;
    border: 1px solid #666;



    /* Tooltip */
    /* Base styles for the element that has a tooltip */
    .leaflet-tooltip
    position: absolute;
    padding: 6px;
    background-color: #fff;
    border: 1px solid #fff;
    border-radius: 3px;
    color: #222;
    white-space: nowrap;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    pointer-events: none;
    box-shadow: 0 1px 3px rgba(0,0,0,0.4);

    .leaflet-tooltip.leaflet-clickable
    cursor: pointer;
    pointer-events: auto;

    .leaflet-tooltip-top:before,
    .leaflet-tooltip-bottom:before,
    .leaflet-tooltip-left:before,
    .leaflet-tooltip-right:before
    position: absolute;
    pointer-events: none;
    border: 6px solid transparent;
    background: transparent;
    content: "";


    /* Directions */

    .leaflet-tooltip-bottom
    margin-top: 6px;

    .leaflet-tooltip-top
    margin-top: -6px;

    .leaflet-tooltip-bottom:before,
    .leaflet-tooltip-top:before
    left: 50%;
    margin-left: -6px;

    .leaflet-tooltip-top:before
    bottom: 0;
    margin-bottom: -12px;
    border-top-color: #fff;

    .leaflet-tooltip-bottom:before
    top: 0;
    margin-top: -12px;
    margin-left: -6px;
    border-bottom-color: #fff;

    .leaflet-tooltip-left
    margin-left: -6px;

    .leaflet-tooltip-right
    margin-left: 6px;

    .leaflet-tooltip-left:before,
    .leaflet-tooltip-right:before
    top: 50%;
    margin-top: -6px;

    .leaflet-tooltip-left:before
    right: 0;
    margin-right: -12px;
    border-left-color: #fff;

    .leaflet-tooltip-right:before
    left: 0;
    margin-left: -12px;
    border-right-color: #fff;




    html, body
    width : 100%;
    height : 100%;


    .map-container
    width : 100%;
    height : 100%;


     <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.4/dist/leaflet.css"
    />
    <link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.Default.css" />

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js" ></script>
    <script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js"
    ></script>
    <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBet5Wx-JdSc4cY4v4zR6_FIhYc2oWgTv4"
    type="text/javascript"></script>
    <script src="https://unpkg.com/leaflet-control-geocoder/dist/Control.Geocoder.js" ></script>
    <script src='https://unpkg.com/leaflet.gridlayer.googlemutant@latest/Leaflet.GoogleMutant.js'></script>
    <script src="https://unpkg.com/leaflet.markercluster@1.4.1/dist/leaflet.markercluster-src.js"></script>

    <div class="map-container" id="mapid"></div>

    <ul class="countries">
    <li class="country">
    <span class="country-name">Philippines</span>
    <div class="country-pop-up-message">
    <h2 class="population">Population: 200</h2>
    <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

    </div>
    </li>
    <li class="country">
    <span class="country-name">Brunei</span>
    <div class="country-pop-up-message">
    <h2 class="population">Population: 200</h2>
    <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

    </div>
    </li>
    <li class="country">
    <span class="country-name">Malaysia</span>
    <div class="country-pop-up-message">
    <h2 class="population">Population: 300</h2>
    <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

    </div>
    </li>

    </ul>












    share|improve this question























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      I'm having a difficult time trying to figure out how I can display the marker with a pop up message programmatically using leaftlet js.



      The class country-pop-up-message is the pop up message I want to be displayed for each marker when looped.



      <ul class="countries">
      <li class="country">
      <span class="country-name">Philippines</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 200</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>
      <li class="country">
      <span class="country-name">Brunei</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 200</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>
      <li class="country">
      <span class="country-name">Malaysia</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 300</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>

      </ul>





       var map = L.map('mapid', 

      fullscreenControl:
      pseudoFullscreen: false // if true, fullscreen to page width and height
      ,

      ).setView([0,0], 3);

      map.createPane('labels');
      map.getPane('labels').style.zIndex = 650;
      map.getPane('labels').style.pointerEvents = 'none';

      var positron = L.tileLayer('https://s.tile.openstreetmap.org/z/x/y.png',
      noWrap: true,
      maxZoom : 15
      ).addTo(map);

      var positronLabels = L.tileLayer('http://s.basemaps.cartocdn.com/light_only_labels/z/x/y.png',
      pane: 'labels',
      noWrap: true,
      maxZoom : 3
      ).addTo(map);


      var southWest = L.latLng(-89.98155760646617, -180),
      northEast = L.latLng(89.99346179538875, 180),
      bounds = L.latLngBounds(southWest, northEast);

      map.setMaxBounds(bounds);
      map.on('drag', function()
      map.panInsideBounds(bounds, animate: false );
      );


      geocoder = new L.Control.Geocoder.Nominatim();

      var countries = ;
      var markers = ;

      var markerCluster = L.markerClusterGroup(
      spiderfyOnMaxZoom: false,
      showCoverageOnHover: false,
      // zoomToBoundsOnClick: false
      );



      $('.countries > .country > .country-name').each(function()
      countries.push([
      $(this).text()
      ]);
      );



      for(var i = 0; i < countries.length; i++)

      geocoder.geocode(countries[i], function(results)
      console.log(countries[i]);
      var latLng = new L.LatLng(results[0].center.lat, results[0].center.lng);
      marker = L.marker(latLng);


      markers.push(marker);
      markerCluster.addLayer(marker);
      );


      markerCluster.on('clusterclick', function (a)
      );
      map.addLayer(markerCluster);

      /* http://meyerweb.com/eric/tools/css/reset/ 
      v2.0 | 20110126
      License: none (public domain)
      */

      html, body, div, span, applet, object, iframe,
      h1, h2, h3, h4, h5, h6, p, blockquote, pre,
      a, abbr, acronym, address, big, cite, code,
      del, dfn, em, img, ins, kbd, q, s, samp,
      small, strike, strong, sub, sup, tt, var,
      b, u, i, center,
      dl, dt, dd, ol, ul, li,
      fieldset, form, label, legend,
      table, caption, tbody, tfoot, thead, tr, th, td,
      article, aside, canvas, details, embed,
      figure, figcaption, footer, header, hgroup,
      menu, nav, output, ruby, section, summary,
      time, mark, audio, video
      margin: 0;
      padding: 0;
      border: 0;
      font-size: 100%;
      font: inherit;
      vertical-align: baseline;

      /* HTML5 display-role reset for older browsers */
      article, aside, details, figcaption, figure,
      footer, header, hgroup, menu, nav, section
      display: block;

      body
      line-height: 1;

      ol, ul
      list-style: none;

      blockquote, q
      quotes: none;

      blockquote:before, blockquote:after,
      q:before, q:after
      content: '';
      content: none;

      table
      border-collapse: collapse;
      border-spacing: 0;


      /* required styles */

      .leaflet-pane,
      .leaflet-tile,
      .leaflet-marker-icon,
      .leaflet-marker-shadow,
      .leaflet-tile-container,
      .leaflet-pane > svg,
      .leaflet-pane > canvas,
      .leaflet-zoom-box,
      .leaflet-image-layer,
      .leaflet-layer
      position: absolute;
      left: 0;
      top: 0;

      .leaflet-container
      overflow: hidden;

      .leaflet-tile,
      .leaflet-marker-icon,
      .leaflet-marker-shadow
      -webkit-user-select: none;
      -moz-user-select: none;
      user-select: none;
      -webkit-user-drag: none;

      /* Safari renders non-retina tile on retina better with this, but Chrome is worse */
      .leaflet-safari .leaflet-tile
      image-rendering: -webkit-optimize-contrast;

      /* hack that prevents hw layers "stretching" when loading new tiles */
      .leaflet-safari .leaflet-tile-container
      width: 1600px;
      height: 1600px;
      -webkit-transform-origin: 0 0;

      .leaflet-marker-icon,
      .leaflet-marker-shadow
      display: block;

      /* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
      /* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
      .leaflet-container .leaflet-overlay-pane svg,
      .leaflet-container .leaflet-marker-pane img,
      .leaflet-container .leaflet-shadow-pane img,
      .leaflet-container .leaflet-tile-pane img,
      .leaflet-container img.leaflet-image-layer,
      .leaflet-container .leaflet-tile
      max-width: none !important;
      max-height: none !important;


      .leaflet-container.leaflet-touch-zoom
      -ms-touch-action: pan-x pan-y;
      touch-action: pan-x pan-y;

      .leaflet-container.leaflet-touch-drag
      -ms-touch-action: pinch-zoom;
      /* Fallback for FF which doesn't support pinch-zoom */
      touch-action: none;
      touch-action: pinch-zoom;

      .leaflet-container.leaflet-touch-drag.leaflet-touch-zoom
      -ms-touch-action: none;
      touch-action: none;

      .leaflet-container
      -webkit-tap-highlight-color: transparent;

      .leaflet-container a
      -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);

      .leaflet-tile
      filter: inherit;
      visibility: hidden;

      .leaflet-tile-loaded
      visibility: inherit;

      .leaflet-zoom-box
      width: 0;
      height: 0;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      z-index: 800;

      /* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
      .leaflet-overlay-pane svg
      -moz-user-select: none;


      .leaflet-pane z-index: 400;

      .leaflet-tile-pane z-index: 200;
      .leaflet-overlay-pane z-index: 400;
      .leaflet-shadow-pane z-index: 500;
      .leaflet-marker-pane z-index: 600;
      .leaflet-tooltip-pane z-index: 650;
      .leaflet-popup-pane z-index: 700;

      .leaflet-map-pane canvas z-index: 100;
      .leaflet-map-pane svg z-index: 200;

      .leaflet-vml-shape
      width: 1px;
      height: 1px;

      .lvml
      behavior: url(#default#VML);
      display: inline-block;
      position: absolute;



      /* control positioning */

      .leaflet-control
      position: relative;
      z-index: 800;
      pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
      pointer-events: auto;

      .leaflet-top,
      .leaflet-bottom
      position: absolute;
      z-index: 1000;
      pointer-events: none;

      .leaflet-top
      top: 0;

      .leaflet-right
      right: 0;

      .leaflet-bottom
      bottom: 0;

      .leaflet-left
      left: 0;

      .leaflet-control
      float: left;
      clear: both;

      .leaflet-right .leaflet-control
      float: right;

      .leaflet-top .leaflet-control
      margin-top: 10px;

      .leaflet-bottom .leaflet-control
      margin-bottom: 10px;

      .leaflet-left .leaflet-control
      margin-left: 10px;

      .leaflet-right .leaflet-control
      margin-right: 10px;



      /* zoom and fade animations */

      .leaflet-fade-anim .leaflet-tile
      will-change: opacity;

      .leaflet-fade-anim .leaflet-popup
      opacity: 0;
      -webkit-transition: opacity 0.2s linear;
      -moz-transition: opacity 0.2s linear;
      transition: opacity 0.2s linear;

      .leaflet-fade-anim .leaflet-map-pane .leaflet-popup
      opacity: 1;

      .leaflet-zoom-animated
      -webkit-transform-origin: 0 0;
      -ms-transform-origin: 0 0;
      transform-origin: 0 0;

      .leaflet-zoom-anim .leaflet-zoom-animated
      will-change: transform;

      .leaflet-zoom-anim .leaflet-zoom-animated
      -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
      -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
      transition: transform 0.25s cubic-bezier(0,0,0.25,1);

      .leaflet-zoom-anim .leaflet-tile,
      .leaflet-pan-anim .leaflet-tile
      -webkit-transition: none;
      -moz-transition: none;
      transition: none;


      .leaflet-zoom-anim .leaflet-zoom-hide
      visibility: hidden;



      /* cursors */

      .leaflet-interactive
      cursor: pointer;

      .leaflet-grab
      cursor: -webkit-grab;
      cursor: -moz-grab;
      cursor: grab;

      .leaflet-crosshair,
      .leaflet-crosshair .leaflet-interactive
      cursor: crosshair;

      .leaflet-popup-pane,
      .leaflet-control
      cursor: auto;

      .leaflet-dragging .leaflet-grab,
      .leaflet-dragging .leaflet-grab .leaflet-interactive,
      .leaflet-dragging .leaflet-marker-draggable
      cursor: move;
      cursor: -webkit-grabbing;
      cursor: -moz-grabbing;
      cursor: grabbing;


      /* marker & overlays interactivity */
      .leaflet-marker-icon,
      .leaflet-marker-shadow,
      .leaflet-image-layer,
      .leaflet-pane > svg path,
      .leaflet-tile-container
      pointer-events: none;


      .leaflet-marker-icon.leaflet-interactive,
      .leaflet-image-layer.leaflet-interactive,
      .leaflet-pane > svg path.leaflet-interactive
      pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
      pointer-events: auto;


      /* visual tweaks */

      .leaflet-container
      background: #ddd;
      outline: 0;

      .leaflet-container a
      color: #0078A8;

      .leaflet-container a.leaflet-active
      outline: 2px solid orange;

      .leaflet-zoom-box
      border: 2px dotted #38f;
      background: rgba(255,255,255,0.5);



      /* general typography */
      .leaflet-container
      font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;



      /* general toolbar styles */

      .leaflet-bar
      box-shadow: 0 1px 5px rgba(0,0,0,0.65);
      border-radius: 4px;

      .leaflet-bar a,
      .leaflet-bar a:hover
      background-color: #fff;
      border-bottom: 1px solid #ccc;
      width: 26px;
      height: 26px;
      line-height: 26px;
      display: block;
      text-align: center;
      text-decoration: none;
      color: black;

      .leaflet-bar a,
      .leaflet-control-layers-toggle
      background-position: 50% 50%;
      background-repeat: no-repeat;
      display: block;

      .leaflet-bar a:hover
      background-color: #f4f4f4;

      .leaflet-bar a:first-child
      border-top-left-radius: 4px;
      border-top-right-radius: 4px;

      .leaflet-bar a:last-child
      border-bottom-left-radius: 4px;
      border-bottom-right-radius: 4px;
      border-bottom: none;

      .leaflet-bar a.leaflet-disabled
      cursor: default;
      background-color: #f4f4f4;
      color: #bbb;


      .leaflet-touch .leaflet-bar a
      width: 30px;
      height: 30px;
      line-height: 30px;

      .leaflet-touch .leaflet-bar a:first-child
      border-top-left-radius: 2px;
      border-top-right-radius: 2px;

      .leaflet-touch .leaflet-bar a:last-child
      border-bottom-left-radius: 2px;
      border-bottom-right-radius: 2px;


      /* zoom control */

      .leaflet-control-zoom-in,
      .leaflet-control-zoom-out
      font: bold 18px 'Lucida Console', Monaco, monospace;
      text-indent: 1px;


      .leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out
      font-size: 22px;



      /* layers control */

      .leaflet-control-layers
      box-shadow: 0 1px 5px rgba(0,0,0,0.4);
      background: #fff;
      border-radius: 5px;

      .leaflet-control-layers-toggle
      background-image: url(images/layers.png);
      width: 36px;
      height: 36px;

      .leaflet-retina .leaflet-control-layers-toggle
      background-image: url(images/layers-2x.png);
      background-size: 26px 26px;

      .leaflet-touch .leaflet-control-layers-toggle
      width: 44px;
      height: 44px;

      .leaflet-control-layers .leaflet-control-layers-list,
      .leaflet-control-layers-expanded .leaflet-control-layers-toggle
      display: none;

      .leaflet-control-layers-expanded .leaflet-control-layers-list
      display: block;
      position: relative;

      .leaflet-control-layers-expanded
      padding: 6px 10px 6px 6px;
      color: #333;
      background: #fff;

      .leaflet-control-layers-scrollbar
      overflow-y: scroll;
      overflow-x: hidden;
      padding-right: 5px;

      .leaflet-control-layers-selector
      margin-top: 2px;
      position: relative;
      top: 1px;

      .leaflet-control-layers label
      display: block;

      .leaflet-control-layers-separator
      height: 0;
      border-top: 1px solid #ddd;
      margin: 5px -10px 5px -6px;


      /* Default icon URLs */
      .leaflet-default-icon-path
      background-image: url(images/marker-icon.png);



      /* attribution and scale controls */

      .leaflet-container .leaflet-control-attribution
      background: #fff;
      background: rgba(255, 255, 255, 0.7);
      margin: 0;

      .leaflet-control-attribution,
      .leaflet-control-scale-line
      padding: 0 5px;
      color: #333;

      .leaflet-control-attribution a
      text-decoration: none;

      .leaflet-control-attribution a:hover
      text-decoration: underline;

      .leaflet-container .leaflet-control-attribution,
      .leaflet-container .leaflet-control-scale
      font-size: 11px;

      .leaflet-left .leaflet-control-scale
      margin-left: 5px;

      .leaflet-bottom .leaflet-control-scale
      margin-bottom: 5px;

      .leaflet-control-scale-line
      border: 2px solid #777;
      border-top: none;
      line-height: 1.1;
      padding: 2px 5px 1px;
      font-size: 11px;
      white-space: nowrap;
      overflow: hidden;
      -moz-box-sizing: border-box;
      box-sizing: border-box;

      background: #fff;
      background: rgba(255, 255, 255, 0.5);

      .leaflet-control-scale-line:not(:first-child)
      border-top: 2px solid #777;
      border-bottom: none;
      margin-top: -2px;

      .leaflet-control-scale-line:not(:first-child):not(:last-child)
      border-bottom: 2px solid #777;


      .leaflet-touch .leaflet-control-attribution,
      .leaflet-touch .leaflet-control-layers,
      .leaflet-touch .leaflet-bar
      box-shadow: none;

      .leaflet-touch .leaflet-control-layers,
      .leaflet-touch .leaflet-bar
      border: 2px solid rgba(0,0,0,0.2);
      background-clip: padding-box;



      /* popup */

      .leaflet-popup
      position: absolute;
      text-align: center;
      margin-bottom: 20px;

      .leaflet-popup-content-wrapper
      padding: 1px;
      text-align: left;
      border-radius: 12px;

      .leaflet-popup-content
      margin: 13px 19px;
      line-height: 1.4;

      .leaflet-popup-content p
      margin: 18px 0;

      .leaflet-popup-tip-container
      width: 40px;
      height: 20px;
      position: absolute;
      left: 50%;
      margin-left: -20px;
      overflow: hidden;
      pointer-events: none;

      .leaflet-popup-tip
      width: 17px;
      height: 17px;
      padding: 1px;

      margin: -10px auto 0;

      -webkit-transform: rotate(45deg);
      -moz-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
      transform: rotate(45deg);

      .leaflet-popup-content-wrapper,
      .leaflet-popup-tip
      background: white;
      color: #333;
      box-shadow: 0 3px 14px rgba(0,0,0,0.4);

      .leaflet-container a.leaflet-popup-close-button
      position: absolute;
      top: 0;
      right: 0;
      padding: 4px 4px 0 0;
      border: none;
      text-align: center;
      width: 18px;
      height: 14px;
      font: 16px/14px Tahoma, Verdana, sans-serif;
      color: #c3c3c3;
      text-decoration: none;
      font-weight: bold;
      background: transparent;

      .leaflet-container a.leaflet-popup-close-button:hover
      color: #999;

      .leaflet-popup-scrolled
      overflow: auto;
      border-bottom: 1px solid #ddd;
      border-top: 1px solid #ddd;


      .leaflet-oldie .leaflet-popup-content-wrapper
      zoom: 1;

      .leaflet-oldie .leaflet-popup-tip
      width: 24px;
      margin: 0 auto;

      -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
      filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);

      .leaflet-oldie .leaflet-popup-tip-container
      margin-top: -1px;


      .leaflet-oldie .leaflet-control-zoom,
      .leaflet-oldie .leaflet-control-layers,
      .leaflet-oldie .leaflet-popup-content-wrapper,
      .leaflet-oldie .leaflet-popup-tip
      border: 1px solid #999;



      /* div icon */

      .leaflet-div-icon
      background: #fff;
      border: 1px solid #666;



      /* Tooltip */
      /* Base styles for the element that has a tooltip */
      .leaflet-tooltip
      position: absolute;
      padding: 6px;
      background-color: #fff;
      border: 1px solid #fff;
      border-radius: 3px;
      color: #222;
      white-space: nowrap;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
      pointer-events: none;
      box-shadow: 0 1px 3px rgba(0,0,0,0.4);

      .leaflet-tooltip.leaflet-clickable
      cursor: pointer;
      pointer-events: auto;

      .leaflet-tooltip-top:before,
      .leaflet-tooltip-bottom:before,
      .leaflet-tooltip-left:before,
      .leaflet-tooltip-right:before
      position: absolute;
      pointer-events: none;
      border: 6px solid transparent;
      background: transparent;
      content: "";


      /* Directions */

      .leaflet-tooltip-bottom
      margin-top: 6px;

      .leaflet-tooltip-top
      margin-top: -6px;

      .leaflet-tooltip-bottom:before,
      .leaflet-tooltip-top:before
      left: 50%;
      margin-left: -6px;

      .leaflet-tooltip-top:before
      bottom: 0;
      margin-bottom: -12px;
      border-top-color: #fff;

      .leaflet-tooltip-bottom:before
      top: 0;
      margin-top: -12px;
      margin-left: -6px;
      border-bottom-color: #fff;

      .leaflet-tooltip-left
      margin-left: -6px;

      .leaflet-tooltip-right
      margin-left: 6px;

      .leaflet-tooltip-left:before,
      .leaflet-tooltip-right:before
      top: 50%;
      margin-top: -6px;

      .leaflet-tooltip-left:before
      right: 0;
      margin-right: -12px;
      border-left-color: #fff;

      .leaflet-tooltip-right:before
      left: 0;
      margin-left: -12px;
      border-right-color: #fff;




      html, body
      width : 100%;
      height : 100%;


      .map-container
      width : 100%;
      height : 100%;


       <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.4/dist/leaflet.css"
      />
      <link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.Default.css" />

      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js" ></script>
      <script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js"
      ></script>
      <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBet5Wx-JdSc4cY4v4zR6_FIhYc2oWgTv4"
      type="text/javascript"></script>
      <script src="https://unpkg.com/leaflet-control-geocoder/dist/Control.Geocoder.js" ></script>
      <script src='https://unpkg.com/leaflet.gridlayer.googlemutant@latest/Leaflet.GoogleMutant.js'></script>
      <script src="https://unpkg.com/leaflet.markercluster@1.4.1/dist/leaflet.markercluster-src.js"></script>

      <div class="map-container" id="mapid"></div>

      <ul class="countries">
      <li class="country">
      <span class="country-name">Philippines</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 200</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>
      <li class="country">
      <span class="country-name">Brunei</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 200</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>
      <li class="country">
      <span class="country-name">Malaysia</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 300</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>

      </ul>












      share|improve this question













      I'm having a difficult time trying to figure out how I can display the marker with a pop up message programmatically using leaftlet js.



      The class country-pop-up-message is the pop up message I want to be displayed for each marker when looped.



      <ul class="countries">
      <li class="country">
      <span class="country-name">Philippines</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 200</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>
      <li class="country">
      <span class="country-name">Brunei</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 200</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>
      <li class="country">
      <span class="country-name">Malaysia</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 300</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>

      </ul>





       var map = L.map('mapid', 

      fullscreenControl:
      pseudoFullscreen: false // if true, fullscreen to page width and height
      ,

      ).setView([0,0], 3);

      map.createPane('labels');
      map.getPane('labels').style.zIndex = 650;
      map.getPane('labels').style.pointerEvents = 'none';

      var positron = L.tileLayer('https://s.tile.openstreetmap.org/z/x/y.png',
      noWrap: true,
      maxZoom : 15
      ).addTo(map);

      var positronLabels = L.tileLayer('http://s.basemaps.cartocdn.com/light_only_labels/z/x/y.png',
      pane: 'labels',
      noWrap: true,
      maxZoom : 3
      ).addTo(map);


      var southWest = L.latLng(-89.98155760646617, -180),
      northEast = L.latLng(89.99346179538875, 180),
      bounds = L.latLngBounds(southWest, northEast);

      map.setMaxBounds(bounds);
      map.on('drag', function()
      map.panInsideBounds(bounds, animate: false );
      );


      geocoder = new L.Control.Geocoder.Nominatim();

      var countries = ;
      var markers = ;

      var markerCluster = L.markerClusterGroup(
      spiderfyOnMaxZoom: false,
      showCoverageOnHover: false,
      // zoomToBoundsOnClick: false
      );



      $('.countries > .country > .country-name').each(function()
      countries.push([
      $(this).text()
      ]);
      );



      for(var i = 0; i < countries.length; i++)

      geocoder.geocode(countries[i], function(results)
      console.log(countries[i]);
      var latLng = new L.LatLng(results[0].center.lat, results[0].center.lng);
      marker = L.marker(latLng);


      markers.push(marker);
      markerCluster.addLayer(marker);
      );


      markerCluster.on('clusterclick', function (a)
      );
      map.addLayer(markerCluster);

      /* http://meyerweb.com/eric/tools/css/reset/ 
      v2.0 | 20110126
      License: none (public domain)
      */

      html, body, div, span, applet, object, iframe,
      h1, h2, h3, h4, h5, h6, p, blockquote, pre,
      a, abbr, acronym, address, big, cite, code,
      del, dfn, em, img, ins, kbd, q, s, samp,
      small, strike, strong, sub, sup, tt, var,
      b, u, i, center,
      dl, dt, dd, ol, ul, li,
      fieldset, form, label, legend,
      table, caption, tbody, tfoot, thead, tr, th, td,
      article, aside, canvas, details, embed,
      figure, figcaption, footer, header, hgroup,
      menu, nav, output, ruby, section, summary,
      time, mark, audio, video
      margin: 0;
      padding: 0;
      border: 0;
      font-size: 100%;
      font: inherit;
      vertical-align: baseline;

      /* HTML5 display-role reset for older browsers */
      article, aside, details, figcaption, figure,
      footer, header, hgroup, menu, nav, section
      display: block;

      body
      line-height: 1;

      ol, ul
      list-style: none;

      blockquote, q
      quotes: none;

      blockquote:before, blockquote:after,
      q:before, q:after
      content: '';
      content: none;

      table
      border-collapse: collapse;
      border-spacing: 0;


      /* required styles */

      .leaflet-pane,
      .leaflet-tile,
      .leaflet-marker-icon,
      .leaflet-marker-shadow,
      .leaflet-tile-container,
      .leaflet-pane > svg,
      .leaflet-pane > canvas,
      .leaflet-zoom-box,
      .leaflet-image-layer,
      .leaflet-layer
      position: absolute;
      left: 0;
      top: 0;

      .leaflet-container
      overflow: hidden;

      .leaflet-tile,
      .leaflet-marker-icon,
      .leaflet-marker-shadow
      -webkit-user-select: none;
      -moz-user-select: none;
      user-select: none;
      -webkit-user-drag: none;

      /* Safari renders non-retina tile on retina better with this, but Chrome is worse */
      .leaflet-safari .leaflet-tile
      image-rendering: -webkit-optimize-contrast;

      /* hack that prevents hw layers "stretching" when loading new tiles */
      .leaflet-safari .leaflet-tile-container
      width: 1600px;
      height: 1600px;
      -webkit-transform-origin: 0 0;

      .leaflet-marker-icon,
      .leaflet-marker-shadow
      display: block;

      /* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
      /* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
      .leaflet-container .leaflet-overlay-pane svg,
      .leaflet-container .leaflet-marker-pane img,
      .leaflet-container .leaflet-shadow-pane img,
      .leaflet-container .leaflet-tile-pane img,
      .leaflet-container img.leaflet-image-layer,
      .leaflet-container .leaflet-tile
      max-width: none !important;
      max-height: none !important;


      .leaflet-container.leaflet-touch-zoom
      -ms-touch-action: pan-x pan-y;
      touch-action: pan-x pan-y;

      .leaflet-container.leaflet-touch-drag
      -ms-touch-action: pinch-zoom;
      /* Fallback for FF which doesn't support pinch-zoom */
      touch-action: none;
      touch-action: pinch-zoom;

      .leaflet-container.leaflet-touch-drag.leaflet-touch-zoom
      -ms-touch-action: none;
      touch-action: none;

      .leaflet-container
      -webkit-tap-highlight-color: transparent;

      .leaflet-container a
      -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);

      .leaflet-tile
      filter: inherit;
      visibility: hidden;

      .leaflet-tile-loaded
      visibility: inherit;

      .leaflet-zoom-box
      width: 0;
      height: 0;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      z-index: 800;

      /* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
      .leaflet-overlay-pane svg
      -moz-user-select: none;


      .leaflet-pane z-index: 400;

      .leaflet-tile-pane z-index: 200;
      .leaflet-overlay-pane z-index: 400;
      .leaflet-shadow-pane z-index: 500;
      .leaflet-marker-pane z-index: 600;
      .leaflet-tooltip-pane z-index: 650;
      .leaflet-popup-pane z-index: 700;

      .leaflet-map-pane canvas z-index: 100;
      .leaflet-map-pane svg z-index: 200;

      .leaflet-vml-shape
      width: 1px;
      height: 1px;

      .lvml
      behavior: url(#default#VML);
      display: inline-block;
      position: absolute;



      /* control positioning */

      .leaflet-control
      position: relative;
      z-index: 800;
      pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
      pointer-events: auto;

      .leaflet-top,
      .leaflet-bottom
      position: absolute;
      z-index: 1000;
      pointer-events: none;

      .leaflet-top
      top: 0;

      .leaflet-right
      right: 0;

      .leaflet-bottom
      bottom: 0;

      .leaflet-left
      left: 0;

      .leaflet-control
      float: left;
      clear: both;

      .leaflet-right .leaflet-control
      float: right;

      .leaflet-top .leaflet-control
      margin-top: 10px;

      .leaflet-bottom .leaflet-control
      margin-bottom: 10px;

      .leaflet-left .leaflet-control
      margin-left: 10px;

      .leaflet-right .leaflet-control
      margin-right: 10px;



      /* zoom and fade animations */

      .leaflet-fade-anim .leaflet-tile
      will-change: opacity;

      .leaflet-fade-anim .leaflet-popup
      opacity: 0;
      -webkit-transition: opacity 0.2s linear;
      -moz-transition: opacity 0.2s linear;
      transition: opacity 0.2s linear;

      .leaflet-fade-anim .leaflet-map-pane .leaflet-popup
      opacity: 1;

      .leaflet-zoom-animated
      -webkit-transform-origin: 0 0;
      -ms-transform-origin: 0 0;
      transform-origin: 0 0;

      .leaflet-zoom-anim .leaflet-zoom-animated
      will-change: transform;

      .leaflet-zoom-anim .leaflet-zoom-animated
      -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
      -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
      transition: transform 0.25s cubic-bezier(0,0,0.25,1);

      .leaflet-zoom-anim .leaflet-tile,
      .leaflet-pan-anim .leaflet-tile
      -webkit-transition: none;
      -moz-transition: none;
      transition: none;


      .leaflet-zoom-anim .leaflet-zoom-hide
      visibility: hidden;



      /* cursors */

      .leaflet-interactive
      cursor: pointer;

      .leaflet-grab
      cursor: -webkit-grab;
      cursor: -moz-grab;
      cursor: grab;

      .leaflet-crosshair,
      .leaflet-crosshair .leaflet-interactive
      cursor: crosshair;

      .leaflet-popup-pane,
      .leaflet-control
      cursor: auto;

      .leaflet-dragging .leaflet-grab,
      .leaflet-dragging .leaflet-grab .leaflet-interactive,
      .leaflet-dragging .leaflet-marker-draggable
      cursor: move;
      cursor: -webkit-grabbing;
      cursor: -moz-grabbing;
      cursor: grabbing;


      /* marker & overlays interactivity */
      .leaflet-marker-icon,
      .leaflet-marker-shadow,
      .leaflet-image-layer,
      .leaflet-pane > svg path,
      .leaflet-tile-container
      pointer-events: none;


      .leaflet-marker-icon.leaflet-interactive,
      .leaflet-image-layer.leaflet-interactive,
      .leaflet-pane > svg path.leaflet-interactive
      pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
      pointer-events: auto;


      /* visual tweaks */

      .leaflet-container
      background: #ddd;
      outline: 0;

      .leaflet-container a
      color: #0078A8;

      .leaflet-container a.leaflet-active
      outline: 2px solid orange;

      .leaflet-zoom-box
      border: 2px dotted #38f;
      background: rgba(255,255,255,0.5);



      /* general typography */
      .leaflet-container
      font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;



      /* general toolbar styles */

      .leaflet-bar
      box-shadow: 0 1px 5px rgba(0,0,0,0.65);
      border-radius: 4px;

      .leaflet-bar a,
      .leaflet-bar a:hover
      background-color: #fff;
      border-bottom: 1px solid #ccc;
      width: 26px;
      height: 26px;
      line-height: 26px;
      display: block;
      text-align: center;
      text-decoration: none;
      color: black;

      .leaflet-bar a,
      .leaflet-control-layers-toggle
      background-position: 50% 50%;
      background-repeat: no-repeat;
      display: block;

      .leaflet-bar a:hover
      background-color: #f4f4f4;

      .leaflet-bar a:first-child
      border-top-left-radius: 4px;
      border-top-right-radius: 4px;

      .leaflet-bar a:last-child
      border-bottom-left-radius: 4px;
      border-bottom-right-radius: 4px;
      border-bottom: none;

      .leaflet-bar a.leaflet-disabled
      cursor: default;
      background-color: #f4f4f4;
      color: #bbb;


      .leaflet-touch .leaflet-bar a
      width: 30px;
      height: 30px;
      line-height: 30px;

      .leaflet-touch .leaflet-bar a:first-child
      border-top-left-radius: 2px;
      border-top-right-radius: 2px;

      .leaflet-touch .leaflet-bar a:last-child
      border-bottom-left-radius: 2px;
      border-bottom-right-radius: 2px;


      /* zoom control */

      .leaflet-control-zoom-in,
      .leaflet-control-zoom-out
      font: bold 18px 'Lucida Console', Monaco, monospace;
      text-indent: 1px;


      .leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out
      font-size: 22px;



      /* layers control */

      .leaflet-control-layers
      box-shadow: 0 1px 5px rgba(0,0,0,0.4);
      background: #fff;
      border-radius: 5px;

      .leaflet-control-layers-toggle
      background-image: url(images/layers.png);
      width: 36px;
      height: 36px;

      .leaflet-retina .leaflet-control-layers-toggle
      background-image: url(images/layers-2x.png);
      background-size: 26px 26px;

      .leaflet-touch .leaflet-control-layers-toggle
      width: 44px;
      height: 44px;

      .leaflet-control-layers .leaflet-control-layers-list,
      .leaflet-control-layers-expanded .leaflet-control-layers-toggle
      display: none;

      .leaflet-control-layers-expanded .leaflet-control-layers-list
      display: block;
      position: relative;

      .leaflet-control-layers-expanded
      padding: 6px 10px 6px 6px;
      color: #333;
      background: #fff;

      .leaflet-control-layers-scrollbar
      overflow-y: scroll;
      overflow-x: hidden;
      padding-right: 5px;

      .leaflet-control-layers-selector
      margin-top: 2px;
      position: relative;
      top: 1px;

      .leaflet-control-layers label
      display: block;

      .leaflet-control-layers-separator
      height: 0;
      border-top: 1px solid #ddd;
      margin: 5px -10px 5px -6px;


      /* Default icon URLs */
      .leaflet-default-icon-path
      background-image: url(images/marker-icon.png);



      /* attribution and scale controls */

      .leaflet-container .leaflet-control-attribution
      background: #fff;
      background: rgba(255, 255, 255, 0.7);
      margin: 0;

      .leaflet-control-attribution,
      .leaflet-control-scale-line
      padding: 0 5px;
      color: #333;

      .leaflet-control-attribution a
      text-decoration: none;

      .leaflet-control-attribution a:hover
      text-decoration: underline;

      .leaflet-container .leaflet-control-attribution,
      .leaflet-container .leaflet-control-scale
      font-size: 11px;

      .leaflet-left .leaflet-control-scale
      margin-left: 5px;

      .leaflet-bottom .leaflet-control-scale
      margin-bottom: 5px;

      .leaflet-control-scale-line
      border: 2px solid #777;
      border-top: none;
      line-height: 1.1;
      padding: 2px 5px 1px;
      font-size: 11px;
      white-space: nowrap;
      overflow: hidden;
      -moz-box-sizing: border-box;
      box-sizing: border-box;

      background: #fff;
      background: rgba(255, 255, 255, 0.5);

      .leaflet-control-scale-line:not(:first-child)
      border-top: 2px solid #777;
      border-bottom: none;
      margin-top: -2px;

      .leaflet-control-scale-line:not(:first-child):not(:last-child)
      border-bottom: 2px solid #777;


      .leaflet-touch .leaflet-control-attribution,
      .leaflet-touch .leaflet-control-layers,
      .leaflet-touch .leaflet-bar
      box-shadow: none;

      .leaflet-touch .leaflet-control-layers,
      .leaflet-touch .leaflet-bar
      border: 2px solid rgba(0,0,0,0.2);
      background-clip: padding-box;



      /* popup */

      .leaflet-popup
      position: absolute;
      text-align: center;
      margin-bottom: 20px;

      .leaflet-popup-content-wrapper
      padding: 1px;
      text-align: left;
      border-radius: 12px;

      .leaflet-popup-content
      margin: 13px 19px;
      line-height: 1.4;

      .leaflet-popup-content p
      margin: 18px 0;

      .leaflet-popup-tip-container
      width: 40px;
      height: 20px;
      position: absolute;
      left: 50%;
      margin-left: -20px;
      overflow: hidden;
      pointer-events: none;

      .leaflet-popup-tip
      width: 17px;
      height: 17px;
      padding: 1px;

      margin: -10px auto 0;

      -webkit-transform: rotate(45deg);
      -moz-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
      transform: rotate(45deg);

      .leaflet-popup-content-wrapper,
      .leaflet-popup-tip
      background: white;
      color: #333;
      box-shadow: 0 3px 14px rgba(0,0,0,0.4);

      .leaflet-container a.leaflet-popup-close-button
      position: absolute;
      top: 0;
      right: 0;
      padding: 4px 4px 0 0;
      border: none;
      text-align: center;
      width: 18px;
      height: 14px;
      font: 16px/14px Tahoma, Verdana, sans-serif;
      color: #c3c3c3;
      text-decoration: none;
      font-weight: bold;
      background: transparent;

      .leaflet-container a.leaflet-popup-close-button:hover
      color: #999;

      .leaflet-popup-scrolled
      overflow: auto;
      border-bottom: 1px solid #ddd;
      border-top: 1px solid #ddd;


      .leaflet-oldie .leaflet-popup-content-wrapper
      zoom: 1;

      .leaflet-oldie .leaflet-popup-tip
      width: 24px;
      margin: 0 auto;

      -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
      filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);

      .leaflet-oldie .leaflet-popup-tip-container
      margin-top: -1px;


      .leaflet-oldie .leaflet-control-zoom,
      .leaflet-oldie .leaflet-control-layers,
      .leaflet-oldie .leaflet-popup-content-wrapper,
      .leaflet-oldie .leaflet-popup-tip
      border: 1px solid #999;



      /* div icon */

      .leaflet-div-icon
      background: #fff;
      border: 1px solid #666;



      /* Tooltip */
      /* Base styles for the element that has a tooltip */
      .leaflet-tooltip
      position: absolute;
      padding: 6px;
      background-color: #fff;
      border: 1px solid #fff;
      border-radius: 3px;
      color: #222;
      white-space: nowrap;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
      pointer-events: none;
      box-shadow: 0 1px 3px rgba(0,0,0,0.4);

      .leaflet-tooltip.leaflet-clickable
      cursor: pointer;
      pointer-events: auto;

      .leaflet-tooltip-top:before,
      .leaflet-tooltip-bottom:before,
      .leaflet-tooltip-left:before,
      .leaflet-tooltip-right:before
      position: absolute;
      pointer-events: none;
      border: 6px solid transparent;
      background: transparent;
      content: "";


      /* Directions */

      .leaflet-tooltip-bottom
      margin-top: 6px;

      .leaflet-tooltip-top
      margin-top: -6px;

      .leaflet-tooltip-bottom:before,
      .leaflet-tooltip-top:before
      left: 50%;
      margin-left: -6px;

      .leaflet-tooltip-top:before
      bottom: 0;
      margin-bottom: -12px;
      border-top-color: #fff;

      .leaflet-tooltip-bottom:before
      top: 0;
      margin-top: -12px;
      margin-left: -6px;
      border-bottom-color: #fff;

      .leaflet-tooltip-left
      margin-left: -6px;

      .leaflet-tooltip-right
      margin-left: 6px;

      .leaflet-tooltip-left:before,
      .leaflet-tooltip-right:before
      top: 50%;
      margin-top: -6px;

      .leaflet-tooltip-left:before
      right: 0;
      margin-right: -12px;
      border-left-color: #fff;

      .leaflet-tooltip-right:before
      left: 0;
      margin-left: -12px;
      border-right-color: #fff;




      html, body
      width : 100%;
      height : 100%;


      .map-container
      width : 100%;
      height : 100%;


       <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.4/dist/leaflet.css"
      />
      <link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.Default.css" />

      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js" ></script>
      <script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js"
      ></script>
      <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBet5Wx-JdSc4cY4v4zR6_FIhYc2oWgTv4"
      type="text/javascript"></script>
      <script src="https://unpkg.com/leaflet-control-geocoder/dist/Control.Geocoder.js" ></script>
      <script src='https://unpkg.com/leaflet.gridlayer.googlemutant@latest/Leaflet.GoogleMutant.js'></script>
      <script src="https://unpkg.com/leaflet.markercluster@1.4.1/dist/leaflet.markercluster-src.js"></script>

      <div class="map-container" id="mapid"></div>

      <ul class="countries">
      <li class="country">
      <span class="country-name">Philippines</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 200</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>
      <li class="country">
      <span class="country-name">Brunei</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 200</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>
      <li class="country">
      <span class="country-name">Malaysia</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 300</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>

      </ul>








       var map = L.map('mapid', 

      fullscreenControl:
      pseudoFullscreen: false // if true, fullscreen to page width and height
      ,

      ).setView([0,0], 3);

      map.createPane('labels');
      map.getPane('labels').style.zIndex = 650;
      map.getPane('labels').style.pointerEvents = 'none';

      var positron = L.tileLayer('https://s.tile.openstreetmap.org/z/x/y.png',
      noWrap: true,
      maxZoom : 15
      ).addTo(map);

      var positronLabels = L.tileLayer('http://s.basemaps.cartocdn.com/light_only_labels/z/x/y.png',
      pane: 'labels',
      noWrap: true,
      maxZoom : 3
      ).addTo(map);


      var southWest = L.latLng(-89.98155760646617, -180),
      northEast = L.latLng(89.99346179538875, 180),
      bounds = L.latLngBounds(southWest, northEast);

      map.setMaxBounds(bounds);
      map.on('drag', function()
      map.panInsideBounds(bounds, animate: false );
      );


      geocoder = new L.Control.Geocoder.Nominatim();

      var countries = ;
      var markers = ;

      var markerCluster = L.markerClusterGroup(
      spiderfyOnMaxZoom: false,
      showCoverageOnHover: false,
      // zoomToBoundsOnClick: false
      );



      $('.countries > .country > .country-name').each(function()
      countries.push([
      $(this).text()
      ]);
      );



      for(var i = 0; i < countries.length; i++)

      geocoder.geocode(countries[i], function(results)
      console.log(countries[i]);
      var latLng = new L.LatLng(results[0].center.lat, results[0].center.lng);
      marker = L.marker(latLng);


      markers.push(marker);
      markerCluster.addLayer(marker);
      );


      markerCluster.on('clusterclick', function (a)
      );
      map.addLayer(markerCluster);

      /* http://meyerweb.com/eric/tools/css/reset/ 
      v2.0 | 20110126
      License: none (public domain)
      */

      html, body, div, span, applet, object, iframe,
      h1, h2, h3, h4, h5, h6, p, blockquote, pre,
      a, abbr, acronym, address, big, cite, code,
      del, dfn, em, img, ins, kbd, q, s, samp,
      small, strike, strong, sub, sup, tt, var,
      b, u, i, center,
      dl, dt, dd, ol, ul, li,
      fieldset, form, label, legend,
      table, caption, tbody, tfoot, thead, tr, th, td,
      article, aside, canvas, details, embed,
      figure, figcaption, footer, header, hgroup,
      menu, nav, output, ruby, section, summary,
      time, mark, audio, video
      margin: 0;
      padding: 0;
      border: 0;
      font-size: 100%;
      font: inherit;
      vertical-align: baseline;

      /* HTML5 display-role reset for older browsers */
      article, aside, details, figcaption, figure,
      footer, header, hgroup, menu, nav, section
      display: block;

      body
      line-height: 1;

      ol, ul
      list-style: none;

      blockquote, q
      quotes: none;

      blockquote:before, blockquote:after,
      q:before, q:after
      content: '';
      content: none;

      table
      border-collapse: collapse;
      border-spacing: 0;


      /* required styles */

      .leaflet-pane,
      .leaflet-tile,
      .leaflet-marker-icon,
      .leaflet-marker-shadow,
      .leaflet-tile-container,
      .leaflet-pane > svg,
      .leaflet-pane > canvas,
      .leaflet-zoom-box,
      .leaflet-image-layer,
      .leaflet-layer
      position: absolute;
      left: 0;
      top: 0;

      .leaflet-container
      overflow: hidden;

      .leaflet-tile,
      .leaflet-marker-icon,
      .leaflet-marker-shadow
      -webkit-user-select: none;
      -moz-user-select: none;
      user-select: none;
      -webkit-user-drag: none;

      /* Safari renders non-retina tile on retina better with this, but Chrome is worse */
      .leaflet-safari .leaflet-tile
      image-rendering: -webkit-optimize-contrast;

      /* hack that prevents hw layers "stretching" when loading new tiles */
      .leaflet-safari .leaflet-tile-container
      width: 1600px;
      height: 1600px;
      -webkit-transform-origin: 0 0;

      .leaflet-marker-icon,
      .leaflet-marker-shadow
      display: block;

      /* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
      /* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
      .leaflet-container .leaflet-overlay-pane svg,
      .leaflet-container .leaflet-marker-pane img,
      .leaflet-container .leaflet-shadow-pane img,
      .leaflet-container .leaflet-tile-pane img,
      .leaflet-container img.leaflet-image-layer,
      .leaflet-container .leaflet-tile
      max-width: none !important;
      max-height: none !important;


      .leaflet-container.leaflet-touch-zoom
      -ms-touch-action: pan-x pan-y;
      touch-action: pan-x pan-y;

      .leaflet-container.leaflet-touch-drag
      -ms-touch-action: pinch-zoom;
      /* Fallback for FF which doesn't support pinch-zoom */
      touch-action: none;
      touch-action: pinch-zoom;

      .leaflet-container.leaflet-touch-drag.leaflet-touch-zoom
      -ms-touch-action: none;
      touch-action: none;

      .leaflet-container
      -webkit-tap-highlight-color: transparent;

      .leaflet-container a
      -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);

      .leaflet-tile
      filter: inherit;
      visibility: hidden;

      .leaflet-tile-loaded
      visibility: inherit;

      .leaflet-zoom-box
      width: 0;
      height: 0;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      z-index: 800;

      /* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
      .leaflet-overlay-pane svg
      -moz-user-select: none;


      .leaflet-pane z-index: 400;

      .leaflet-tile-pane z-index: 200;
      .leaflet-overlay-pane z-index: 400;
      .leaflet-shadow-pane z-index: 500;
      .leaflet-marker-pane z-index: 600;
      .leaflet-tooltip-pane z-index: 650;
      .leaflet-popup-pane z-index: 700;

      .leaflet-map-pane canvas z-index: 100;
      .leaflet-map-pane svg z-index: 200;

      .leaflet-vml-shape
      width: 1px;
      height: 1px;

      .lvml
      behavior: url(#default#VML);
      display: inline-block;
      position: absolute;



      /* control positioning */

      .leaflet-control
      position: relative;
      z-index: 800;
      pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
      pointer-events: auto;

      .leaflet-top,
      .leaflet-bottom
      position: absolute;
      z-index: 1000;
      pointer-events: none;

      .leaflet-top
      top: 0;

      .leaflet-right
      right: 0;

      .leaflet-bottom
      bottom: 0;

      .leaflet-left
      left: 0;

      .leaflet-control
      float: left;
      clear: both;

      .leaflet-right .leaflet-control
      float: right;

      .leaflet-top .leaflet-control
      margin-top: 10px;

      .leaflet-bottom .leaflet-control
      margin-bottom: 10px;

      .leaflet-left .leaflet-control
      margin-left: 10px;

      .leaflet-right .leaflet-control
      margin-right: 10px;



      /* zoom and fade animations */

      .leaflet-fade-anim .leaflet-tile
      will-change: opacity;

      .leaflet-fade-anim .leaflet-popup
      opacity: 0;
      -webkit-transition: opacity 0.2s linear;
      -moz-transition: opacity 0.2s linear;
      transition: opacity 0.2s linear;

      .leaflet-fade-anim .leaflet-map-pane .leaflet-popup
      opacity: 1;

      .leaflet-zoom-animated
      -webkit-transform-origin: 0 0;
      -ms-transform-origin: 0 0;
      transform-origin: 0 0;

      .leaflet-zoom-anim .leaflet-zoom-animated
      will-change: transform;

      .leaflet-zoom-anim .leaflet-zoom-animated
      -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
      -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
      transition: transform 0.25s cubic-bezier(0,0,0.25,1);

      .leaflet-zoom-anim .leaflet-tile,
      .leaflet-pan-anim .leaflet-tile
      -webkit-transition: none;
      -moz-transition: none;
      transition: none;


      .leaflet-zoom-anim .leaflet-zoom-hide
      visibility: hidden;



      /* cursors */

      .leaflet-interactive
      cursor: pointer;

      .leaflet-grab
      cursor: -webkit-grab;
      cursor: -moz-grab;
      cursor: grab;

      .leaflet-crosshair,
      .leaflet-crosshair .leaflet-interactive
      cursor: crosshair;

      .leaflet-popup-pane,
      .leaflet-control
      cursor: auto;

      .leaflet-dragging .leaflet-grab,
      .leaflet-dragging .leaflet-grab .leaflet-interactive,
      .leaflet-dragging .leaflet-marker-draggable
      cursor: move;
      cursor: -webkit-grabbing;
      cursor: -moz-grabbing;
      cursor: grabbing;


      /* marker & overlays interactivity */
      .leaflet-marker-icon,
      .leaflet-marker-shadow,
      .leaflet-image-layer,
      .leaflet-pane > svg path,
      .leaflet-tile-container
      pointer-events: none;


      .leaflet-marker-icon.leaflet-interactive,
      .leaflet-image-layer.leaflet-interactive,
      .leaflet-pane > svg path.leaflet-interactive
      pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
      pointer-events: auto;


      /* visual tweaks */

      .leaflet-container
      background: #ddd;
      outline: 0;

      .leaflet-container a
      color: #0078A8;

      .leaflet-container a.leaflet-active
      outline: 2px solid orange;

      .leaflet-zoom-box
      border: 2px dotted #38f;
      background: rgba(255,255,255,0.5);



      /* general typography */
      .leaflet-container
      font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;



      /* general toolbar styles */

      .leaflet-bar
      box-shadow: 0 1px 5px rgba(0,0,0,0.65);
      border-radius: 4px;

      .leaflet-bar a,
      .leaflet-bar a:hover
      background-color: #fff;
      border-bottom: 1px solid #ccc;
      width: 26px;
      height: 26px;
      line-height: 26px;
      display: block;
      text-align: center;
      text-decoration: none;
      color: black;

      .leaflet-bar a,
      .leaflet-control-layers-toggle
      background-position: 50% 50%;
      background-repeat: no-repeat;
      display: block;

      .leaflet-bar a:hover
      background-color: #f4f4f4;

      .leaflet-bar a:first-child
      border-top-left-radius: 4px;
      border-top-right-radius: 4px;

      .leaflet-bar a:last-child
      border-bottom-left-radius: 4px;
      border-bottom-right-radius: 4px;
      border-bottom: none;

      .leaflet-bar a.leaflet-disabled
      cursor: default;
      background-color: #f4f4f4;
      color: #bbb;


      .leaflet-touch .leaflet-bar a
      width: 30px;
      height: 30px;
      line-height: 30px;

      .leaflet-touch .leaflet-bar a:first-child
      border-top-left-radius: 2px;
      border-top-right-radius: 2px;

      .leaflet-touch .leaflet-bar a:last-child
      border-bottom-left-radius: 2px;
      border-bottom-right-radius: 2px;


      /* zoom control */

      .leaflet-control-zoom-in,
      .leaflet-control-zoom-out
      font: bold 18px 'Lucida Console', Monaco, monospace;
      text-indent: 1px;


      .leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out
      font-size: 22px;



      /* layers control */

      .leaflet-control-layers
      box-shadow: 0 1px 5px rgba(0,0,0,0.4);
      background: #fff;
      border-radius: 5px;

      .leaflet-control-layers-toggle
      background-image: url(images/layers.png);
      width: 36px;
      height: 36px;

      .leaflet-retina .leaflet-control-layers-toggle
      background-image: url(images/layers-2x.png);
      background-size: 26px 26px;

      .leaflet-touch .leaflet-control-layers-toggle
      width: 44px;
      height: 44px;

      .leaflet-control-layers .leaflet-control-layers-list,
      .leaflet-control-layers-expanded .leaflet-control-layers-toggle
      display: none;

      .leaflet-control-layers-expanded .leaflet-control-layers-list
      display: block;
      position: relative;

      .leaflet-control-layers-expanded
      padding: 6px 10px 6px 6px;
      color: #333;
      background: #fff;

      .leaflet-control-layers-scrollbar
      overflow-y: scroll;
      overflow-x: hidden;
      padding-right: 5px;

      .leaflet-control-layers-selector
      margin-top: 2px;
      position: relative;
      top: 1px;

      .leaflet-control-layers label
      display: block;

      .leaflet-control-layers-separator
      height: 0;
      border-top: 1px solid #ddd;
      margin: 5px -10px 5px -6px;


      /* Default icon URLs */
      .leaflet-default-icon-path
      background-image: url(images/marker-icon.png);



      /* attribution and scale controls */

      .leaflet-container .leaflet-control-attribution
      background: #fff;
      background: rgba(255, 255, 255, 0.7);
      margin: 0;

      .leaflet-control-attribution,
      .leaflet-control-scale-line
      padding: 0 5px;
      color: #333;

      .leaflet-control-attribution a
      text-decoration: none;

      .leaflet-control-attribution a:hover
      text-decoration: underline;

      .leaflet-container .leaflet-control-attribution,
      .leaflet-container .leaflet-control-scale
      font-size: 11px;

      .leaflet-left .leaflet-control-scale
      margin-left: 5px;

      .leaflet-bottom .leaflet-control-scale
      margin-bottom: 5px;

      .leaflet-control-scale-line
      border: 2px solid #777;
      border-top: none;
      line-height: 1.1;
      padding: 2px 5px 1px;
      font-size: 11px;
      white-space: nowrap;
      overflow: hidden;
      -moz-box-sizing: border-box;
      box-sizing: border-box;

      background: #fff;
      background: rgba(255, 255, 255, 0.5);

      .leaflet-control-scale-line:not(:first-child)
      border-top: 2px solid #777;
      border-bottom: none;
      margin-top: -2px;

      .leaflet-control-scale-line:not(:first-child):not(:last-child)
      border-bottom: 2px solid #777;


      .leaflet-touch .leaflet-control-attribution,
      .leaflet-touch .leaflet-control-layers,
      .leaflet-touch .leaflet-bar
      box-shadow: none;

      .leaflet-touch .leaflet-control-layers,
      .leaflet-touch .leaflet-bar
      border: 2px solid rgba(0,0,0,0.2);
      background-clip: padding-box;



      /* popup */

      .leaflet-popup
      position: absolute;
      text-align: center;
      margin-bottom: 20px;

      .leaflet-popup-content-wrapper
      padding: 1px;
      text-align: left;
      border-radius: 12px;

      .leaflet-popup-content
      margin: 13px 19px;
      line-height: 1.4;

      .leaflet-popup-content p
      margin: 18px 0;

      .leaflet-popup-tip-container
      width: 40px;
      height: 20px;
      position: absolute;
      left: 50%;
      margin-left: -20px;
      overflow: hidden;
      pointer-events: none;

      .leaflet-popup-tip
      width: 17px;
      height: 17px;
      padding: 1px;

      margin: -10px auto 0;

      -webkit-transform: rotate(45deg);
      -moz-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
      transform: rotate(45deg);

      .leaflet-popup-content-wrapper,
      .leaflet-popup-tip
      background: white;
      color: #333;
      box-shadow: 0 3px 14px rgba(0,0,0,0.4);

      .leaflet-container a.leaflet-popup-close-button
      position: absolute;
      top: 0;
      right: 0;
      padding: 4px 4px 0 0;
      border: none;
      text-align: center;
      width: 18px;
      height: 14px;
      font: 16px/14px Tahoma, Verdana, sans-serif;
      color: #c3c3c3;
      text-decoration: none;
      font-weight: bold;
      background: transparent;

      .leaflet-container a.leaflet-popup-close-button:hover
      color: #999;

      .leaflet-popup-scrolled
      overflow: auto;
      border-bottom: 1px solid #ddd;
      border-top: 1px solid #ddd;


      .leaflet-oldie .leaflet-popup-content-wrapper
      zoom: 1;

      .leaflet-oldie .leaflet-popup-tip
      width: 24px;
      margin: 0 auto;

      -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
      filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);

      .leaflet-oldie .leaflet-popup-tip-container
      margin-top: -1px;


      .leaflet-oldie .leaflet-control-zoom,
      .leaflet-oldie .leaflet-control-layers,
      .leaflet-oldie .leaflet-popup-content-wrapper,
      .leaflet-oldie .leaflet-popup-tip
      border: 1px solid #999;



      /* div icon */

      .leaflet-div-icon
      background: #fff;
      border: 1px solid #666;



      /* Tooltip */
      /* Base styles for the element that has a tooltip */
      .leaflet-tooltip
      position: absolute;
      padding: 6px;
      background-color: #fff;
      border: 1px solid #fff;
      border-radius: 3px;
      color: #222;
      white-space: nowrap;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
      pointer-events: none;
      box-shadow: 0 1px 3px rgba(0,0,0,0.4);

      .leaflet-tooltip.leaflet-clickable
      cursor: pointer;
      pointer-events: auto;

      .leaflet-tooltip-top:before,
      .leaflet-tooltip-bottom:before,
      .leaflet-tooltip-left:before,
      .leaflet-tooltip-right:before
      position: absolute;
      pointer-events: none;
      border: 6px solid transparent;
      background: transparent;
      content: "";


      /* Directions */

      .leaflet-tooltip-bottom
      margin-top: 6px;

      .leaflet-tooltip-top
      margin-top: -6px;

      .leaflet-tooltip-bottom:before,
      .leaflet-tooltip-top:before
      left: 50%;
      margin-left: -6px;

      .leaflet-tooltip-top:before
      bottom: 0;
      margin-bottom: -12px;
      border-top-color: #fff;

      .leaflet-tooltip-bottom:before
      top: 0;
      margin-top: -12px;
      margin-left: -6px;
      border-bottom-color: #fff;

      .leaflet-tooltip-left
      margin-left: -6px;

      .leaflet-tooltip-right
      margin-left: 6px;

      .leaflet-tooltip-left:before,
      .leaflet-tooltip-right:before
      top: 50%;
      margin-top: -6px;

      .leaflet-tooltip-left:before
      right: 0;
      margin-right: -12px;
      border-left-color: #fff;

      .leaflet-tooltip-right:before
      left: 0;
      margin-left: -12px;
      border-right-color: #fff;




      html, body
      width : 100%;
      height : 100%;


      .map-container
      width : 100%;
      height : 100%;


       <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.4/dist/leaflet.css"
      />
      <link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.Default.css" />

      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js" ></script>
      <script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js"
      ></script>
      <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBet5Wx-JdSc4cY4v4zR6_FIhYc2oWgTv4"
      type="text/javascript"></script>
      <script src="https://unpkg.com/leaflet-control-geocoder/dist/Control.Geocoder.js" ></script>
      <script src='https://unpkg.com/leaflet.gridlayer.googlemutant@latest/Leaflet.GoogleMutant.js'></script>
      <script src="https://unpkg.com/leaflet.markercluster@1.4.1/dist/leaflet.markercluster-src.js"></script>

      <div class="map-container" id="mapid"></div>

      <ul class="countries">
      <li class="country">
      <span class="country-name">Philippines</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 200</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>
      <li class="country">
      <span class="country-name">Brunei</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 200</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>
      <li class="country">
      <span class="country-name">Malaysia</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 300</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>

      </ul>





       var map = L.map('mapid', 

      fullscreenControl:
      pseudoFullscreen: false // if true, fullscreen to page width and height
      ,

      ).setView([0,0], 3);

      map.createPane('labels');
      map.getPane('labels').style.zIndex = 650;
      map.getPane('labels').style.pointerEvents = 'none';

      var positron = L.tileLayer('https://s.tile.openstreetmap.org/z/x/y.png',
      noWrap: true,
      maxZoom : 15
      ).addTo(map);

      var positronLabels = L.tileLayer('http://s.basemaps.cartocdn.com/light_only_labels/z/x/y.png',
      pane: 'labels',
      noWrap: true,
      maxZoom : 3
      ).addTo(map);


      var southWest = L.latLng(-89.98155760646617, -180),
      northEast = L.latLng(89.99346179538875, 180),
      bounds = L.latLngBounds(southWest, northEast);

      map.setMaxBounds(bounds);
      map.on('drag', function()
      map.panInsideBounds(bounds, animate: false );
      );


      geocoder = new L.Control.Geocoder.Nominatim();

      var countries = ;
      var markers = ;

      var markerCluster = L.markerClusterGroup(
      spiderfyOnMaxZoom: false,
      showCoverageOnHover: false,
      // zoomToBoundsOnClick: false
      );



      $('.countries > .country > .country-name').each(function()
      countries.push([
      $(this).text()
      ]);
      );



      for(var i = 0; i < countries.length; i++)

      geocoder.geocode(countries[i], function(results)
      console.log(countries[i]);
      var latLng = new L.LatLng(results[0].center.lat, results[0].center.lng);
      marker = L.marker(latLng);


      markers.push(marker);
      markerCluster.addLayer(marker);
      );


      markerCluster.on('clusterclick', function (a)
      );
      map.addLayer(markerCluster);

      /* http://meyerweb.com/eric/tools/css/reset/ 
      v2.0 | 20110126
      License: none (public domain)
      */

      html, body, div, span, applet, object, iframe,
      h1, h2, h3, h4, h5, h6, p, blockquote, pre,
      a, abbr, acronym, address, big, cite, code,
      del, dfn, em, img, ins, kbd, q, s, samp,
      small, strike, strong, sub, sup, tt, var,
      b, u, i, center,
      dl, dt, dd, ol, ul, li,
      fieldset, form, label, legend,
      table, caption, tbody, tfoot, thead, tr, th, td,
      article, aside, canvas, details, embed,
      figure, figcaption, footer, header, hgroup,
      menu, nav, output, ruby, section, summary,
      time, mark, audio, video
      margin: 0;
      padding: 0;
      border: 0;
      font-size: 100%;
      font: inherit;
      vertical-align: baseline;

      /* HTML5 display-role reset for older browsers */
      article, aside, details, figcaption, figure,
      footer, header, hgroup, menu, nav, section
      display: block;

      body
      line-height: 1;

      ol, ul
      list-style: none;

      blockquote, q
      quotes: none;

      blockquote:before, blockquote:after,
      q:before, q:after
      content: '';
      content: none;

      table
      border-collapse: collapse;
      border-spacing: 0;


      /* required styles */

      .leaflet-pane,
      .leaflet-tile,
      .leaflet-marker-icon,
      .leaflet-marker-shadow,
      .leaflet-tile-container,
      .leaflet-pane > svg,
      .leaflet-pane > canvas,
      .leaflet-zoom-box,
      .leaflet-image-layer,
      .leaflet-layer
      position: absolute;
      left: 0;
      top: 0;

      .leaflet-container
      overflow: hidden;

      .leaflet-tile,
      .leaflet-marker-icon,
      .leaflet-marker-shadow
      -webkit-user-select: none;
      -moz-user-select: none;
      user-select: none;
      -webkit-user-drag: none;

      /* Safari renders non-retina tile on retina better with this, but Chrome is worse */
      .leaflet-safari .leaflet-tile
      image-rendering: -webkit-optimize-contrast;

      /* hack that prevents hw layers "stretching" when loading new tiles */
      .leaflet-safari .leaflet-tile-container
      width: 1600px;
      height: 1600px;
      -webkit-transform-origin: 0 0;

      .leaflet-marker-icon,
      .leaflet-marker-shadow
      display: block;

      /* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
      /* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
      .leaflet-container .leaflet-overlay-pane svg,
      .leaflet-container .leaflet-marker-pane img,
      .leaflet-container .leaflet-shadow-pane img,
      .leaflet-container .leaflet-tile-pane img,
      .leaflet-container img.leaflet-image-layer,
      .leaflet-container .leaflet-tile
      max-width: none !important;
      max-height: none !important;


      .leaflet-container.leaflet-touch-zoom
      -ms-touch-action: pan-x pan-y;
      touch-action: pan-x pan-y;

      .leaflet-container.leaflet-touch-drag
      -ms-touch-action: pinch-zoom;
      /* Fallback for FF which doesn't support pinch-zoom */
      touch-action: none;
      touch-action: pinch-zoom;

      .leaflet-container.leaflet-touch-drag.leaflet-touch-zoom
      -ms-touch-action: none;
      touch-action: none;

      .leaflet-container
      -webkit-tap-highlight-color: transparent;

      .leaflet-container a
      -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);

      .leaflet-tile
      filter: inherit;
      visibility: hidden;

      .leaflet-tile-loaded
      visibility: inherit;

      .leaflet-zoom-box
      width: 0;
      height: 0;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      z-index: 800;

      /* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
      .leaflet-overlay-pane svg
      -moz-user-select: none;


      .leaflet-pane z-index: 400;

      .leaflet-tile-pane z-index: 200;
      .leaflet-overlay-pane z-index: 400;
      .leaflet-shadow-pane z-index: 500;
      .leaflet-marker-pane z-index: 600;
      .leaflet-tooltip-pane z-index: 650;
      .leaflet-popup-pane z-index: 700;

      .leaflet-map-pane canvas z-index: 100;
      .leaflet-map-pane svg z-index: 200;

      .leaflet-vml-shape
      width: 1px;
      height: 1px;

      .lvml
      behavior: url(#default#VML);
      display: inline-block;
      position: absolute;



      /* control positioning */

      .leaflet-control
      position: relative;
      z-index: 800;
      pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
      pointer-events: auto;

      .leaflet-top,
      .leaflet-bottom
      position: absolute;
      z-index: 1000;
      pointer-events: none;

      .leaflet-top
      top: 0;

      .leaflet-right
      right: 0;

      .leaflet-bottom
      bottom: 0;

      .leaflet-left
      left: 0;

      .leaflet-control
      float: left;
      clear: both;

      .leaflet-right .leaflet-control
      float: right;

      .leaflet-top .leaflet-control
      margin-top: 10px;

      .leaflet-bottom .leaflet-control
      margin-bottom: 10px;

      .leaflet-left .leaflet-control
      margin-left: 10px;

      .leaflet-right .leaflet-control
      margin-right: 10px;



      /* zoom and fade animations */

      .leaflet-fade-anim .leaflet-tile
      will-change: opacity;

      .leaflet-fade-anim .leaflet-popup
      opacity: 0;
      -webkit-transition: opacity 0.2s linear;
      -moz-transition: opacity 0.2s linear;
      transition: opacity 0.2s linear;

      .leaflet-fade-anim .leaflet-map-pane .leaflet-popup
      opacity: 1;

      .leaflet-zoom-animated
      -webkit-transform-origin: 0 0;
      -ms-transform-origin: 0 0;
      transform-origin: 0 0;

      .leaflet-zoom-anim .leaflet-zoom-animated
      will-change: transform;

      .leaflet-zoom-anim .leaflet-zoom-animated
      -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
      -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
      transition: transform 0.25s cubic-bezier(0,0,0.25,1);

      .leaflet-zoom-anim .leaflet-tile,
      .leaflet-pan-anim .leaflet-tile
      -webkit-transition: none;
      -moz-transition: none;
      transition: none;


      .leaflet-zoom-anim .leaflet-zoom-hide
      visibility: hidden;



      /* cursors */

      .leaflet-interactive
      cursor: pointer;

      .leaflet-grab
      cursor: -webkit-grab;
      cursor: -moz-grab;
      cursor: grab;

      .leaflet-crosshair,
      .leaflet-crosshair .leaflet-interactive
      cursor: crosshair;

      .leaflet-popup-pane,
      .leaflet-control
      cursor: auto;

      .leaflet-dragging .leaflet-grab,
      .leaflet-dragging .leaflet-grab .leaflet-interactive,
      .leaflet-dragging .leaflet-marker-draggable
      cursor: move;
      cursor: -webkit-grabbing;
      cursor: -moz-grabbing;
      cursor: grabbing;


      /* marker & overlays interactivity */
      .leaflet-marker-icon,
      .leaflet-marker-shadow,
      .leaflet-image-layer,
      .leaflet-pane > svg path,
      .leaflet-tile-container
      pointer-events: none;


      .leaflet-marker-icon.leaflet-interactive,
      .leaflet-image-layer.leaflet-interactive,
      .leaflet-pane > svg path.leaflet-interactive
      pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
      pointer-events: auto;


      /* visual tweaks */

      .leaflet-container
      background: #ddd;
      outline: 0;

      .leaflet-container a
      color: #0078A8;

      .leaflet-container a.leaflet-active
      outline: 2px solid orange;

      .leaflet-zoom-box
      border: 2px dotted #38f;
      background: rgba(255,255,255,0.5);



      /* general typography */
      .leaflet-container
      font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;



      /* general toolbar styles */

      .leaflet-bar
      box-shadow: 0 1px 5px rgba(0,0,0,0.65);
      border-radius: 4px;

      .leaflet-bar a,
      .leaflet-bar a:hover
      background-color: #fff;
      border-bottom: 1px solid #ccc;
      width: 26px;
      height: 26px;
      line-height: 26px;
      display: block;
      text-align: center;
      text-decoration: none;
      color: black;

      .leaflet-bar a,
      .leaflet-control-layers-toggle
      background-position: 50% 50%;
      background-repeat: no-repeat;
      display: block;

      .leaflet-bar a:hover
      background-color: #f4f4f4;

      .leaflet-bar a:first-child
      border-top-left-radius: 4px;
      border-top-right-radius: 4px;

      .leaflet-bar a:last-child
      border-bottom-left-radius: 4px;
      border-bottom-right-radius: 4px;
      border-bottom: none;

      .leaflet-bar a.leaflet-disabled
      cursor: default;
      background-color: #f4f4f4;
      color: #bbb;


      .leaflet-touch .leaflet-bar a
      width: 30px;
      height: 30px;
      line-height: 30px;

      .leaflet-touch .leaflet-bar a:first-child
      border-top-left-radius: 2px;
      border-top-right-radius: 2px;

      .leaflet-touch .leaflet-bar a:last-child
      border-bottom-left-radius: 2px;
      border-bottom-right-radius: 2px;


      /* zoom control */

      .leaflet-control-zoom-in,
      .leaflet-control-zoom-out
      font: bold 18px 'Lucida Console', Monaco, monospace;
      text-indent: 1px;


      .leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out
      font-size: 22px;



      /* layers control */

      .leaflet-control-layers
      box-shadow: 0 1px 5px rgba(0,0,0,0.4);
      background: #fff;
      border-radius: 5px;

      .leaflet-control-layers-toggle
      background-image: url(images/layers.png);
      width: 36px;
      height: 36px;

      .leaflet-retina .leaflet-control-layers-toggle
      background-image: url(images/layers-2x.png);
      background-size: 26px 26px;

      .leaflet-touch .leaflet-control-layers-toggle
      width: 44px;
      height: 44px;

      .leaflet-control-layers .leaflet-control-layers-list,
      .leaflet-control-layers-expanded .leaflet-control-layers-toggle
      display: none;

      .leaflet-control-layers-expanded .leaflet-control-layers-list
      display: block;
      position: relative;

      .leaflet-control-layers-expanded
      padding: 6px 10px 6px 6px;
      color: #333;
      background: #fff;

      .leaflet-control-layers-scrollbar
      overflow-y: scroll;
      overflow-x: hidden;
      padding-right: 5px;

      .leaflet-control-layers-selector
      margin-top: 2px;
      position: relative;
      top: 1px;

      .leaflet-control-layers label
      display: block;

      .leaflet-control-layers-separator
      height: 0;
      border-top: 1px solid #ddd;
      margin: 5px -10px 5px -6px;


      /* Default icon URLs */
      .leaflet-default-icon-path
      background-image: url(images/marker-icon.png);



      /* attribution and scale controls */

      .leaflet-container .leaflet-control-attribution
      background: #fff;
      background: rgba(255, 255, 255, 0.7);
      margin: 0;

      .leaflet-control-attribution,
      .leaflet-control-scale-line
      padding: 0 5px;
      color: #333;

      .leaflet-control-attribution a
      text-decoration: none;

      .leaflet-control-attribution a:hover
      text-decoration: underline;

      .leaflet-container .leaflet-control-attribution,
      .leaflet-container .leaflet-control-scale
      font-size: 11px;

      .leaflet-left .leaflet-control-scale
      margin-left: 5px;

      .leaflet-bottom .leaflet-control-scale
      margin-bottom: 5px;

      .leaflet-control-scale-line
      border: 2px solid #777;
      border-top: none;
      line-height: 1.1;
      padding: 2px 5px 1px;
      font-size: 11px;
      white-space: nowrap;
      overflow: hidden;
      -moz-box-sizing: border-box;
      box-sizing: border-box;

      background: #fff;
      background: rgba(255, 255, 255, 0.5);

      .leaflet-control-scale-line:not(:first-child)
      border-top: 2px solid #777;
      border-bottom: none;
      margin-top: -2px;

      .leaflet-control-scale-line:not(:first-child):not(:last-child)
      border-bottom: 2px solid #777;


      .leaflet-touch .leaflet-control-attribution,
      .leaflet-touch .leaflet-control-layers,
      .leaflet-touch .leaflet-bar
      box-shadow: none;

      .leaflet-touch .leaflet-control-layers,
      .leaflet-touch .leaflet-bar
      border: 2px solid rgba(0,0,0,0.2);
      background-clip: padding-box;



      /* popup */

      .leaflet-popup
      position: absolute;
      text-align: center;
      margin-bottom: 20px;

      .leaflet-popup-content-wrapper
      padding: 1px;
      text-align: left;
      border-radius: 12px;

      .leaflet-popup-content
      margin: 13px 19px;
      line-height: 1.4;

      .leaflet-popup-content p
      margin: 18px 0;

      .leaflet-popup-tip-container
      width: 40px;
      height: 20px;
      position: absolute;
      left: 50%;
      margin-left: -20px;
      overflow: hidden;
      pointer-events: none;

      .leaflet-popup-tip
      width: 17px;
      height: 17px;
      padding: 1px;

      margin: -10px auto 0;

      -webkit-transform: rotate(45deg);
      -moz-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
      transform: rotate(45deg);

      .leaflet-popup-content-wrapper,
      .leaflet-popup-tip
      background: white;
      color: #333;
      box-shadow: 0 3px 14px rgba(0,0,0,0.4);

      .leaflet-container a.leaflet-popup-close-button
      position: absolute;
      top: 0;
      right: 0;
      padding: 4px 4px 0 0;
      border: none;
      text-align: center;
      width: 18px;
      height: 14px;
      font: 16px/14px Tahoma, Verdana, sans-serif;
      color: #c3c3c3;
      text-decoration: none;
      font-weight: bold;
      background: transparent;

      .leaflet-container a.leaflet-popup-close-button:hover
      color: #999;

      .leaflet-popup-scrolled
      overflow: auto;
      border-bottom: 1px solid #ddd;
      border-top: 1px solid #ddd;


      .leaflet-oldie .leaflet-popup-content-wrapper
      zoom: 1;

      .leaflet-oldie .leaflet-popup-tip
      width: 24px;
      margin: 0 auto;

      -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
      filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);

      .leaflet-oldie .leaflet-popup-tip-container
      margin-top: -1px;


      .leaflet-oldie .leaflet-control-zoom,
      .leaflet-oldie .leaflet-control-layers,
      .leaflet-oldie .leaflet-popup-content-wrapper,
      .leaflet-oldie .leaflet-popup-tip
      border: 1px solid #999;



      /* div icon */

      .leaflet-div-icon
      background: #fff;
      border: 1px solid #666;



      /* Tooltip */
      /* Base styles for the element that has a tooltip */
      .leaflet-tooltip
      position: absolute;
      padding: 6px;
      background-color: #fff;
      border: 1px solid #fff;
      border-radius: 3px;
      color: #222;
      white-space: nowrap;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
      pointer-events: none;
      box-shadow: 0 1px 3px rgba(0,0,0,0.4);

      .leaflet-tooltip.leaflet-clickable
      cursor: pointer;
      pointer-events: auto;

      .leaflet-tooltip-top:before,
      .leaflet-tooltip-bottom:before,
      .leaflet-tooltip-left:before,
      .leaflet-tooltip-right:before
      position: absolute;
      pointer-events: none;
      border: 6px solid transparent;
      background: transparent;
      content: "";


      /* Directions */

      .leaflet-tooltip-bottom
      margin-top: 6px;

      .leaflet-tooltip-top
      margin-top: -6px;

      .leaflet-tooltip-bottom:before,
      .leaflet-tooltip-top:before
      left: 50%;
      margin-left: -6px;

      .leaflet-tooltip-top:before
      bottom: 0;
      margin-bottom: -12px;
      border-top-color: #fff;

      .leaflet-tooltip-bottom:before
      top: 0;
      margin-top: -12px;
      margin-left: -6px;
      border-bottom-color: #fff;

      .leaflet-tooltip-left
      margin-left: -6px;

      .leaflet-tooltip-right
      margin-left: 6px;

      .leaflet-tooltip-left:before,
      .leaflet-tooltip-right:before
      top: 50%;
      margin-top: -6px;

      .leaflet-tooltip-left:before
      right: 0;
      margin-right: -12px;
      border-left-color: #fff;

      .leaflet-tooltip-right:before
      left: 0;
      margin-left: -12px;
      border-right-color: #fff;




      html, body
      width : 100%;
      height : 100%;


      .map-container
      width : 100%;
      height : 100%;


       <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.4/dist/leaflet.css"
      />
      <link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.Default.css" />

      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js" ></script>
      <script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js"
      ></script>
      <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBet5Wx-JdSc4cY4v4zR6_FIhYc2oWgTv4"
      type="text/javascript"></script>
      <script src="https://unpkg.com/leaflet-control-geocoder/dist/Control.Geocoder.js" ></script>
      <script src='https://unpkg.com/leaflet.gridlayer.googlemutant@latest/Leaflet.GoogleMutant.js'></script>
      <script src="https://unpkg.com/leaflet.markercluster@1.4.1/dist/leaflet.markercluster-src.js"></script>

      <div class="map-container" id="mapid"></div>

      <ul class="countries">
      <li class="country">
      <span class="country-name">Philippines</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 200</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>
      <li class="country">
      <span class="country-name">Brunei</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 200</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>
      <li class="country">
      <span class="country-name">Malaysia</span>
      <div class="country-pop-up-message">
      <h2 class="population">Population: 300</h2>
      <p class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</p>

      </div>
      </li>

      </ul>






      javascript html






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 10 at 3:54









      clestcruz

      3551237




      3551237



























          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53235870%2finsert-popup-message-programmatically-using-leaflet-js%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown






























          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.





          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


          Please pay close attention to the following guidance:


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53235870%2finsert-popup-message-programmatically-using-leaflet-js%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          How to how show current date and time by default on contact form 7 in WordPress without taking input from user in datetimepicker

          Syphilis

          Darth Vader #20