2010-05-06 33 views
7

Algunas células en mi mesa SlickGrid tiene myClass clase.información sobre herramientas celular en SlickGrid

he añadido un texto de ayuda para ellos de esta manera:

$(".myClass").hover(// Mouse enters 
        function(e) {...}, 
        // Mouse leaves 
        function() {...}); 

Funciona bien, pero si me desplazo la mesa a la parte inferior, y luego desplazarlo de nuevo a la parte superior, la información sobre herramientas no aparece más.

Puede alguien sugerir una solución?

Gracias!

Respuesta

4

intento:

$('.myClass').live('mouseover mouseout', function(event) { 
// works only on jQuery 1.4.1 and up 
    if (event.type == 'mouseover') { 
    // Mouse enters 
    } else { 
    // Mouse leaves 
    } 
}); 

si eso no funciona, supongo .myClass de haber quitado el fin de tratar de agregarlo de nuevo en cada rollos ...

de cualquier manera, utilice el live()

+0

Excelente! Funciona :) Una cosa me molesta: Veo en los documentos que "El método .hover() vincula a los manejadores tanto para mouseenter como para mouseleave events". Entonces, ¿por qué reemplazar 'mouseover' con' mouseenter' no funcionará? Comprobé y descubrí que si pongo 'mouseenter' en lugar de' mouseover', entonces 'function (event) {..}' también se llama while 'event.type =" mouseover "'. Porqué es eso ? Gracias por tu ayuda ! –

+0

'hover()' no funciona en 'live()' ... – Reigel

+2

live() está en desuso, resp. ya no existe en jQuery 1.9. – markus

14
 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 
     }); 

celda, fila y el tema son sólo algunos ejemplos de cómo llegar a los datos

0
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"); 
     } 
     } 
+1

Sería mejor explicar por qué su código es la respuesta correcta y dónde está la solución. –

Cuestiones relacionadas