Подсказка для ячеек в SlickGrid - PullRequest
7 голосов
/ 06 мая 2010

Некоторые ячейки в моей таблице SlickGrid имеют класс myClass.

Я добавил для них всплывающую подсказку:

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

Работает нормально, но если прокрутить таблицу вниз, а затем снова прокрутить вверх, всплывающая подсказка больше не появится.

Может кто-нибудь предложить какой-нибудь обходной путь?

Спасибо!

Ответы [ 4 ]

14 голосов
/ 02 ноября 2011
        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
        });

ячейка, строка и элемент - только примеры того, как получить данные

4 голосов
/ 06 мая 2010

попробовать:

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

если это не сработает, я думаю, .myClass было удалено, поэтому попробуйте добавлять его снова в каждом свитке ...

в любом случае, используйте live()

3 голосов
/ 29 апреля 2013

Есть плагин для Slickgrid, который будет отображать всплывающие подсказки для элементов, которые слишком велики для отображения в ячейке (если это то, что вы в конечном итоге хотите сделать): SlickGrid: как просмотреть полный текст для длинных записей в ячейках?

0 голосов
/ 22 октября 2013
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");
        }
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...