From 193c4d18b522851d1436855614c1d796ece957eb Mon Sep 17 00:00:00 2001 From: Michael Leibman Date: Fri, 6 Jul 2012 14:01:02 -0700 Subject: [PATCH 1/2] Added "onHeaderMouseEnter" and "onHeaderMouseLeave" events for column headers. (cherry picked from commit a648d5a) --- slick.grid.js | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/slick.grid.js b/slick.grid.js index c1397b3df..3035f5315 100644 --- a/slick.grid.js +++ b/slick.grid.js @@ -272,7 +272,9 @@ if (typeof Slick === "undefined") { .bind("scroll.slickgrid", handleScroll); $headerScroller .bind("contextmenu.slickgrid", handleHeaderContextMenu) - .bind("click.slickgrid", handleHeaderClick); + .bind("click.slickgrid", handleHeaderClick) + .delegate(".slick-header-column", "mouseenter", handleHeaderMouseEnter) + .delegate(".slick-header-column", "mouseleave", handleHeaderMouseLeave); $focusSink .bind("keydown.slickgrid", handleKeyDown); $canvas @@ -460,7 +462,7 @@ if (typeof Slick === "undefined") { $headers.find(".slick-header-column") .each(function() { - var columnDef = columns[columnsById[$(this).data("fieldId")]]; + var columnDef = $(this).data("column"); if (columnDef) { trigger(self.onBeforeHeaderDestroy, { "headerNode": this, @@ -481,7 +483,7 @@ if (typeof Slick === "undefined") { .html("" + m.name + "") .width(m.width - headerColumnWidthDiff) .attr("title", m.toolTip || "") - .data("fieldId", m.id) + .data("column", m) .addClass(m.headerCssClass || "") .appendTo($headers); @@ -531,7 +533,7 @@ if (typeof Slick === "undefined") { return; } - var column = columns[getColumnIndex($col.data("fieldId"))]; + var column = $col.data("column"); if (column.sortable) { if (!getEditorLock().commitCurrentEdit()) { return; @@ -1924,15 +1926,27 @@ if (typeof Slick === "undefined") { } } + function handleHeaderMouseEnter(e) { + trigger(self.onHeaderMouseEnter, { + "column": $(this).data("column") + }, e); + } + + function handleHeaderMouseLeave(e) { + trigger(self.onHeaderMouseLeave, { + "column": $(this).data("column") + }, e); + } + function handleHeaderContextMenu(e) { var $header = $(e.target).closest(".slick-header-column", ".slick-header-columns"); - var column = $header && columns[self.getColumnIndex($header.data("fieldId"))]; + var column = $header && $header.data("column"); trigger(self.onHeaderContextMenu, {column: column}, e); } function handleHeaderClick(e) { var $header = $(e.target).closest(".slick-header-column", ".slick-header-columns"); - var column = $header && columns[self.getColumnIndex($header.data("fieldId"))]; + var column = $header && $header.data("column"); if (column) { trigger(self.onHeaderClick, {column: column}, e); } @@ -2783,6 +2797,8 @@ if (typeof Slick === "undefined") { // Events "onScroll": new Slick.Event(), "onSort": new Slick.Event(), + "onHeaderMouseEnter": new Slick.Event(), + "onHeaderMouseLeave": new Slick.Event(), "onHeaderContextMenu": new Slick.Event(), "onHeaderClick": new Slick.Event(), "onHeaderRendered": new Slick.Event(), From a36c6303aae97f85f0f430a71a5bfc85ca605a42 Mon Sep 17 00:00:00 2001 From: mleibman Date: Fri, 6 Jul 2012 14:14:49 -0700 Subject: [PATCH 2/2] Revert "Added "onHeaderMouseEnter" and "onHeaderMouseLeave" events for column headers. (cherry picked from commit a648d5a)" This reverts commit 193c4d18b522851d1436855614c1d796ece957eb. --- slick.grid.js | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/slick.grid.js b/slick.grid.js index 3035f5315..c1397b3df 100644 --- a/slick.grid.js +++ b/slick.grid.js @@ -272,9 +272,7 @@ if (typeof Slick === "undefined") { .bind("scroll.slickgrid", handleScroll); $headerScroller .bind("contextmenu.slickgrid", handleHeaderContextMenu) - .bind("click.slickgrid", handleHeaderClick) - .delegate(".slick-header-column", "mouseenter", handleHeaderMouseEnter) - .delegate(".slick-header-column", "mouseleave", handleHeaderMouseLeave); + .bind("click.slickgrid", handleHeaderClick); $focusSink .bind("keydown.slickgrid", handleKeyDown); $canvas @@ -462,7 +460,7 @@ if (typeof Slick === "undefined") { $headers.find(".slick-header-column") .each(function() { - var columnDef = $(this).data("column"); + var columnDef = columns[columnsById[$(this).data("fieldId")]]; if (columnDef) { trigger(self.onBeforeHeaderDestroy, { "headerNode": this, @@ -483,7 +481,7 @@ if (typeof Slick === "undefined") { .html("" + m.name + "") .width(m.width - headerColumnWidthDiff) .attr("title", m.toolTip || "") - .data("column", m) + .data("fieldId", m.id) .addClass(m.headerCssClass || "") .appendTo($headers); @@ -533,7 +531,7 @@ if (typeof Slick === "undefined") { return; } - var column = $col.data("column"); + var column = columns[getColumnIndex($col.data("fieldId"))]; if (column.sortable) { if (!getEditorLock().commitCurrentEdit()) { return; @@ -1926,27 +1924,15 @@ if (typeof Slick === "undefined") { } } - function handleHeaderMouseEnter(e) { - trigger(self.onHeaderMouseEnter, { - "column": $(this).data("column") - }, e); - } - - function handleHeaderMouseLeave(e) { - trigger(self.onHeaderMouseLeave, { - "column": $(this).data("column") - }, e); - } - function handleHeaderContextMenu(e) { var $header = $(e.target).closest(".slick-header-column", ".slick-header-columns"); - var column = $header && $header.data("column"); + var column = $header && columns[self.getColumnIndex($header.data("fieldId"))]; trigger(self.onHeaderContextMenu, {column: column}, e); } function handleHeaderClick(e) { var $header = $(e.target).closest(".slick-header-column", ".slick-header-columns"); - var column = $header && $header.data("column"); + var column = $header && columns[self.getColumnIndex($header.data("fieldId"))]; if (column) { trigger(self.onHeaderClick, {column: column}, e); } @@ -2797,8 +2783,6 @@ if (typeof Slick === "undefined") { // Events "onScroll": new Slick.Event(), "onSort": new Slick.Event(), - "onHeaderMouseEnter": new Slick.Event(), - "onHeaderMouseLeave": new Slick.Event(), "onHeaderContextMenu": new Slick.Event(), "onHeaderClick": new Slick.Event(), "onHeaderRendered": new Slick.Event(),