Certaines cellules de ma table slickgrid ont J'ai ajouté une info-bulle pour eux comme ceci: p> Ça fonctionne bien , mais si je fais défiler la table en bas, puis faites-le rebondir sur le dessus, l'info-bulle n'apparaît plus. p> peut suggérer une solution de contournement? P> Merci! < / p> p> myClass code> classe.
4 Réponses :
Essayez:
$('.myClass').live('mouseover mouseout', function(event) {
// works only on jQuery 1.4.1 and up
if (event.type == 'mouseover') {
// Mouse enters
} else {
// Mouse leaves
}
});
Excellent ! Ça marche :) Une chose me dérange: je vois dans les docs que "la méthode de .hover () lie les gestionnaires pour les événements de MouseNerer et de Mouseleave". Alors, pourquoi remplacer Mouseover code> avec MouseNerer code> ne fonctionnera pas? J'ai vérifié et j'ai découvert que si je mettez sourisenter code> au lieu de Mousousever code>, alors fonction (événement) {..} code> est appelé aussi alors que Event.Type = "Mouseover" code>. Pourquoi donc ? Merci pour ton aide !
Live () est obsolète, resp. Il n'existe plus dans JQuery 1.9.
grid.onMouseEnter.subscribe(function(e, args) {
var cell = grid.getCellFromEvent(e)
var row = cell.row
var item = dataView.getItem(row);
//do whatever
});
grid.onMouseLeave.subscribe(function(e, args) {
//do whatever
});
cell, row and item are just examples for how to get to data
Il y a un plugin pour SlickGrid qui affichera des info-bulles pour des articles trop gros pour montrer dans une cellule (si c'est ce que vous cherchez finalement à le faire): SlickGrid: Comment afficher le texte intégral des entrées de longue cellule? p>
1. include ../slick/plugins/slick.autotooltips.js
ex)
<script src="/jsp/slick/plugins/slick.autotooltips.js"></script>
2. add code
$.get(url,function(data){
...
grid.registerPlugin( new Slick.AutoTooltips({ enableForHeaderCells:
true }) );
...
more...
use jquery.ui.tooltips
ex)
<link rel="stylesheet" href="/jsp/jui/themes/base/jquery.ui.tooltip.css"/>
<script src="/jsp/jui/ui/jquery.ui.core.js"></script>
<script src="/jsp/jui/ui/jquery.ui.widget.js"></script>
<script src="/jsp/jui/ui/jquery.ui.position.js"></script>
<script src="/jsp/jui/ui/jquery.ui.tooltip.js"></script>
open slick.grid.js and modify function 2436(line)
function setActiveCellInternal(newCell, opt_editMode) {
if (activeCellNode !== null) {
makeActiveCellNormal();
$(activeCellNode).removeClass("active");
try{$( document ).tooltip("destroy");}catch(e){} // <<<< add code
try{$( document ).tooltip();}catch(e){} // <<<< add code
if (rowsCache[activeRow]) {
$(rowsCache[activeRow].rowNode).removeClass("active");
}
}
Il serait préférable d'expliquer pourquoi votre code est la bonne réponse et où est la solution.