49 lines
1.4 KiB
JavaScript
49 lines
1.4 KiB
JavaScript
(function($) {
|
|
// register namespace
|
|
$.extend(true, window, {
|
|
"Slick": {
|
|
"AutoTooltips": AutoTooltips
|
|
}
|
|
});
|
|
|
|
|
|
function AutoTooltips(options) {
|
|
var _grid;
|
|
var _self = this;
|
|
var _defaults = {
|
|
maxToolTipLength: null
|
|
};
|
|
|
|
function init(grid) {
|
|
options = $.extend(true,{},_defaults,options);
|
|
_grid = grid;
|
|
_grid.onMouseEnter.subscribe(handleMouseEnter);
|
|
}
|
|
|
|
function destroy() {
|
|
_grid.onMouseEnter.unsubscribe(handleMouseEnter);
|
|
}
|
|
|
|
function handleMouseEnter(e,args) {
|
|
var cell = _grid.getCellFromEvent(e);
|
|
if (cell) {
|
|
var node = _grid.getCellNode(cell.row, cell.cell);
|
|
if ($(node).innerWidth() < node.scrollWidth) {
|
|
var text = $.trim($(node).text());
|
|
if (options.maxToolTipLength && text.length > options.maxToolTipLength) {
|
|
text = text.substr(0, options.maxToolTipLength - 3) + "...";
|
|
}
|
|
$(node).attr("title",text);
|
|
}
|
|
else {
|
|
$(node).attr("title","");
|
|
}
|
|
}
|
|
}
|
|
|
|
$.extend(this, {
|
|
"init": init,
|
|
"destroy": destroy
|
|
});
|
|
}
|
|
})(jQuery); |