2012-06-15 3 views
2

Im новичок с jquery.Показать подсказку onHover Строка SlickGrid

У меня есть задача поместить всплывающую подсказку в каждую строку slickgrid. Я знаю, как это сделать. Но, читая документацию slickgrid, нет ничего в таких параметрах, как «hover» или «tooltip».

мой звонок так:

var grid = new gridd.Grid("#ite", result, 
       [{ id: "var1", field: "var1" }, 
        { id: "var2", field: "var2" }, 
        { id: "var3", field: "var3", width: 100, resizable: false }, 
        { id: "var4", field: "var4", width: 110, resizable: false}], 
       { forceFitColumns: true }, 
       //I thought of something like 
       { onHover: function.. }, 
       // 
       { onClick: function (e, row, cell) { 
        var result = this.getData(); 

        postSomething(result[row]); 
       } 
      }); 

ответ

5

Один из вариантов, который получает вам информацию, чтобы подписаться на события сетке в onMouseEnter и onMouseLeave. Вы можете использовать любую подсказку lib, которую хотите, чтобы текст следовал за мышью.

Используйте это событие, чтобы узнать, какая ячейка вы находитесь выше. Я использую dataview, поэтому вам нужно использовать view.getItem, если любые строки были отфильтрованы. Если вы просто показываете данные без фильтрации, я считаю, что вместо этого будет работать data[cell.row], но вам нужно будет протестировать.

Это позволит вам получить информацию, которую нужно добавить в подсказку, вам нужно использовать что-то вроде this, чтобы получить ее в подсказке, следующей за мышью. Для моего теста я просто обновил ярлык (с id = boringLabel), и метка обновилась правильно.

var grid = new Slick.Grid(selector, view, cols, opts); 

.... 

grid.onMouseLeave.subscribe(function(e, args) { 
    $("#boringLabel").text("NONE"); 
}); 

grid.onMouseEnter.subscribe(function(e, args) { 
    var cell = args.grid.getCellFromEvent(e); 
    var item = view.getItem(cell.row); 
    $("#boringLabel").text(item.id + " " + item.description); 
}); 
+0

хорошо, сначала спасибо @Edward для ответа. Я попытался подписаться на события сетки, как сказал, но firebug сообщает мне, что grid.onMouseLeave не определен. И да, я знаю, как сделать классный div и поместить мои данные во всплывающее окно. –

+0

Может быть, потому, что в swickgrid js нет onMouseLeave или onMouseEnter. Im, используя SlickGrid v1.4.3 - jquery-ui.slickgrid.js. Спасибо, аги. –

+0

@MalGaniS Я на 2.0.1, вот почему. – Edward

Смежные вопросы