I have created a custom popup with the popupTemplate function with ArcGIS JS API 4.x
And i add a button in popup content by html.
but i can not addEventListener to a button in popup.
here is the way i am try to do now: ((the full code is here:https://codepen.io/llllllllc/pen/mdpabGwmaterial))
const popupTemplate = { // autocasts as new PopupTemplate() title: "Population in {NAME}", content: populationChange, }; layer.popupTemplate = popupTemplate; function populationChange(feature) { const div = document.createElement("div"); div.innerHTML = "<input type='button' id='btn' value='CLICK'>"; return div; }
view.popup.watch("content", (newValue, oldValue, propertyName, target) => {......});
3.querySelector("#btn") then addEventListener but it fail ,and console.log(btn) show btn is null
const btn = document.querySelector("#btn"); console.log(btn) btn.addEventListener( "click", function () { lert("HELLO WORLD!"); }, false );a
Here is a sample adding a button to the popup content.
https://codepen.io/odoe/pen/abEPGxR?editors=1000
You can either reuse the button you create, or be sure to remove the event listener if you don't
This is using the CustomContent of the PopupTemplate
https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-CustomContent.html
Along similar lines.
function populationChange(feature) {
const div = document.createElement("div");
const btn = document.createElement("button")
btn.innerHTML = 'Click Me'
btn.onclick = function(props) {
alert('hello world.')
}
return div.appendChild(btn)
}