Salut J'ai essayé de faire fonctionner ce script http://jsbin.com/ipajo5/ mais en utilisant .live() au lieu de .each() puisque la table html est remplie à la volée.Comment implémenter jquery live() au lieu de each()
$(document).ready(function() {
$('.bi').each(function() {
// options
var distance = 10;
var time = 250;
var hideDelay = 500;
var hideDelayTimer = null;
var beingShown = false;
var shown = false;
var trigger = $('.tt', this);
var popup = $('.popup', this).css('opacity', 0);
// set the mouseover and mouseout on both element
$([trigger.get(0), popup.get(0)]).mouseover(function() {
if (hideDelayTimer) clearTimeout(hideDelayTimer);
if (beingShown || shown) {
return;
} else {
beingShown = true;
popup.css({
top: $(this).position().top-150,
left: $(this).position().left-100,
display: 'block'
})
.animate({
top: '-=' + distance + 'px',
opacity: 1
}, time, 'swing', function() {
beingShown = false;
shown = true;
});
}
}).mouseout(function() {
if (hideDelayTimer) clearTimeout(hideDelayTimer);
hideDelayTimer = setTimeout(function() {
hideDelayTimer = null;
popup.animate({
top: '-=' + distance + 'px',
opacity: 0
}, time, 'swing', function() {
shown = false;
popup.css('display', 'none');
});
}, hideDelay);
});
});
});
Remarque. Dans certains threads, il est recommandé d'utiliser delegate() à la place de live() pour les performances, mais après plusieurs jours, je veux seulement que cette popup/info-bulle fonctionne.
Merci.
Je l'ai transformé en fonction et l'ai ajouté à la fin des fonctions de dessin (j'ai 2 tables sur la page qui fonctionnent différemment). Je vais essayer avec mouseenter et mouseleave plus tard après plus de tests sur différents navigateurs et compléter toutes les fonctionnalités de la page. Merci @Daniel –