I tried to debug phoenix_html , here is the library code when a click is triggered:
window.addEventListener("click", function(e) {
var element = e.target;
if (e.defaultPrevented) return;
while (element && element.getAttribute) {
var phoenixLinkEvent = new PolyfillEvent('phoenix.link.click', {
"bubbles": true, "cancelable": true
});
if (!element.dispatchEvent(phoenixLinkEvent)) {
e.preventDefault();
e.stopImmediatePropagation();
return false;
}
if (element.getAttribute("data-method") && element.getAttribute("data-to")) {
handleClick(element, e.metaKey || e.shiftKey);
e.preventDefault();
return false;
} else {
element = element.parentNode;
}
}
}, false);
When I’m clicking on the non-functional link, I have e.defaultPrevented which is equal to true and so it returns before calling element.dispatchEvent(phoenixLinkEvent) used to manage the data-confirm popup.