(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);