Pour préciser, c’est un composant de bootstrap qu’on a dû corriger depuis la V4.
Entre la V4 et les versions suivantes, on est passé d’un tooltip :
"data-trigger": "toggle"
à un mode
"data-trigger": "focus" : s’ouvre sur focus
"data-delay": 200 : attendre 200ms avant de le fermer
et un on click qui gère le “toggle”
Le bug étant qu’une ancre ou un bouton dans l’aide ne pouvait pas être exécutée.
Le tooltip en mode “toggle” se ferme avant que l’action n’ait le temps de se propager.
On a tout essayé et seule cette configuration permet de traiter tous les cas d’usage.
this.buttonHelp = function(name, help, title, btn) {
if (!help)
return "";
// not html => convert \n with <br>
if (!help.startsWith("<"))
help = help.replace(/\n/g,"<br/>");
var h = self.spanIcon({ name: "help_"+name, icon: "fas/question-circle" }).addClass("help");
if (btn) {
btn.append(h);
h = btn;
}
if (help.length>300)
h.click(function(e) {
e.stopPropagation();
self.dialog({ title: title, content: $.getSafeHTML(help), closeable: true });
});
else
h.click(function(e) {
e.stopPropagation();
$(this).popover("toggle");
})
.attr({
tabindex: 0,
"data-toggle": "popover",
"data-trigger": "focus",
"data-delay": 200, // close after inner events (href, button...)
"data-container": "body",
"data-placement": "bottom",
"data-html": true,
"data-title": $("<span/>").htmlSafe(title).html(),
"data-content": $("<span/>").htmlSafe(help).html()
});
return h;
};
On me dit que ça peut se produire en 6.2 mais pas en 6.3.
Le code du buttonHelp est strictement identique donc on va creuser la question : ça doit venir de la version de bootstrap qui est légèrement différente.
Cf. ✅ v6.2 | Simplicité Documentation, la version de Bootstrap a été upgradée sur sa version à jour (5.3.8) dans la révision SImplicité 6.2.18 (releaseé le 31/10)