J'ai découvert qu'il y avait des problèmes avec les popovers dynamiques, donc voici donc 2 solutions pour les popovers statiques et dynamiques :
La première solution consiste à utiliser l'option popover triger:'focus'
mais cette option ne fonctionnera pas sur certains appareils Android
et le second :
$('body').popover({
html: true,
//this is for static and dynamic popovers
selector: '[data-toggle="popover"]',
trigger: 'click',
content: function () {
//i am using predefined content for popovers. replace with your code or remove at all
return $($(this).data('templateselector') + ' .content').html();
},
title: function () {
return $($(this).data('templateselector') + ' .title').html();
},
container: 'body'
}).on('show.bs.popover', function (e) {
// i've found that showed popovers has aria-describedby
// and $('[data-toggle="popover"]).not(this) not working for dynamic popovers so i came with this:
$('[data-toggle="popover"][aria-describedby]').popover('hide');
var trigger = $(e.target);
// this is for adding custom class for popover container
// just remove it if you dont need
trigger.data('bs.popover').tip().addClass($(trigger).data('class'));
});