Skip to content

Commit 2f6aabf

Browse files
committed
Improved mouse wheel detection
Better cross-browser mouse wheel event binding. (Also points out some unused variables for later cleanup purposes..)
1 parent 8b0adf6 commit 2f6aabf

File tree

1 file changed

+15
-18
lines changed

1 file changed

+15
-18
lines changed

js/jquery.fn.gantt.js

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
// });
2121

2222
//
23-
/*jshint shadow:true, laxbreak:true, browser:true, jquery:true */
24-
(function ($) {
23+
/*jshint shadow:true, laxbreak:true, jquery:true, strict:true, trailing:true */
24+
(function ($, undefined) {
2525

2626
"use strict";
2727

@@ -362,19 +362,15 @@
362362
var dataPanel = $('<div class="dataPanel" style="width: ' + width + 'px;"/>');
363363

364364
// Handle mousewheel events for scrolling the data panel
365-
var mousewheelevt = (/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : "mousewheel";
366-
if (document.attachEvent) {
367-
element.attachEvent("on" + mousewheelevt, function (e) { core.wheelScroll(element, e); });
368-
} else if (document.addEventListener) {
369-
element.addEventListener(mousewheelevt, function (e) { core.wheelScroll(element, e); }, false);
370-
}
365+
var wheel = 'onwheel' in element ? 'wheel' : document.onmousewheel !== undefined ? 'mousewheel' : 'DOMMouseScroll';
366+
$(element).on(wheel, function (e) { core.wheelScroll(element, e); });
371367

372368
// Handle click events and dispatch to registered `onAddClick`
373369
// function
374370
dataPanel.click(function (e) {
375371

376372
e.stopPropagation();
377-
var corrX, corrY;
373+
var corrX/* <- never used? */, corrY;
378374
var leftpanel = $(element).find(".fn-gantt .leftPanel");
379375
var datapanel = $(element).find(".fn-gantt .dataPanel");
380376
switch (settings.scale) {
@@ -428,13 +424,14 @@
428424

429425
// Creates and return the right panel containing the year/week/day
430426
// header
431-
rightPanel: function (element, leftPanel) {
427+
rightPanel: function (element, leftPanel /* <- never used? */) {
432428

433429
var range = null;
434430
// Days of the week have a class of one of
435-
// `sn` (Saturday), `sa` (Sunday), or `wd` (Weekday)
431+
// `sn` (Sunday), `sa` (Saturday), or `wd` (Weekday)
436432
var dowClass = [" sn", " wd", " wd", " wd", " wd", " wd", " sa"];
437-
var gridDowClass = [" sn", "", "", "", "", "", " sa"];
433+
//TODO: was someone planning to allow styles to stretch to the bottom of the chart?
434+
//var gridDowClass = [" sn", "", "", "", "", "", " sa"];
438435

439436
var yearArr = ['<div class="row"/>'];
440437
var daysInYear = 0;
@@ -698,7 +695,7 @@
698695
var dateBefore = ktkGetNextDate(range[0], -1);
699696
var year = dateBefore.getFullYear();
700697
var month = dateBefore.getMonth();
701-
var day = dateBefore;
698+
var day = dateBefore; // <- never used?
702699

703700
for (var i = 0; i < range.length; i++) {
704701
var rday = range[i];
@@ -1010,7 +1007,7 @@
10101007

10111008
// **Fill the Chart**
10121009
// Parse the data and fill the data panel
1013-
fillData: function (element, datapanel, leftpanel) {
1010+
fillData: function (element, datapanel, leftpanel /* <- never used? */) {
10141011
var invertColor = function (colStr) {
10151012
try {
10161013
colStr = colStr.replace("rgb(", "").replace(")", "");
@@ -1323,7 +1320,7 @@
13231320

13241321
// Move chart via mousewheel
13251322
wheelScroll: function (element, e) {
1326-
var delta = e.detail ? e.detail * (-50) : e.wheelDelta / 120 * 50;
1323+
var delta = - 50 * ('detail' in e ? e.detail : - 1/120 * e.originalEvent.wheelDelta);
13271324

13281325
core.scrollPanel(element, delta);
13291326

@@ -1526,7 +1523,7 @@
15261523
// Return an array of Date objects between `from` and `to`
15271524
parseDateRange: function (from, to) {
15281525
var current = new Date(from.getTime());
1529-
var end = new Date(to.getTime());
1526+
var end = new Date(to.getTime()); // <- never used?
15301527
var ret = [];
15311528
var i = 0;
15321529
do {
@@ -1595,7 +1592,7 @@
15951592
parseWeeksRange: function (from, to) {
15961593

15971594
var current = new Date(from);
1598-
var end = new Date(to);
1595+
var end = new Date(to); // <- never used?
15991596

16001597
var ret = [];
16011598
var i = 0;
@@ -1615,7 +1612,7 @@
16151612
parseMonthsRange: function (from, to) {
16161613

16171614
var current = new Date(from);
1618-
var end = new Date(to);
1615+
var end = new Date(to); // <- never used?
16191616

16201617
var ret = [];
16211618
var i = 0;

0 commit comments

Comments
 (0)