diff options
author | kphoen <geek63@gmail.com> | 2012-04-04 23:25:23 +0200 |
---|---|---|
committer | kphoen <geek63@gmail.com> | 2012-04-04 23:25:23 +0200 |
commit | 874715d439822ee65b40646e0146b83bd53d8447 (patch) | |
tree | 20cf77589603462da0cb7e385a212a8e5c4e6741 | |
parent | cc5bac94bc5282331f5db13054ecc82c4753647b (diff) | |
download | jquery-week-calendar-874715d439822ee65b40646e0146b83bd53d8447.zip jquery-week-calendar-874715d439822ee65b40646e0146b83bd53d8447.tar.gz jquery-week-calendar-874715d439822ee65b40646e0146b83bd53d8447.tar.bz2 |
Fix: Regression: Undefined calEvent Error on Drag and Drop (closes #130)
-rw-r--r-- | jquery.weekcalendar.js | 49 |
1 files changed, 31 insertions, 18 deletions
diff --git a/jquery.weekcalendar.js b/jquery.weekcalendar.js index c3468e3..3c714a9 100644 --- a/jquery.weekcalendar.js +++ b/jquery.weekcalendar.js @@ -590,20 +590,27 @@ _setupEventDelegation: function() { var self = this; var options = this.options; + this.element.click(function(event) { var $target = $(event.target), freeBusyManager; + + // click is disabled if ($target.data('preventClick')) { return; } + var $calEvent = $target.hasClass('wc-cal-event') ? $target : $target.parents('.wc-cal-event'); - if ($calEvent.length) { - freeBusyManager = self.getFreeBusyManagerForEvent($calEvent.data('calEvent')); - if (options.allowEventDelete && $target.hasClass('wc-cal-event-delete')) { - options.eventDelete($calEvent.data('calEvent'), $calEvent, freeBusyManager, self.element, event); - }else{ - options.eventClick($calEvent.data('calEvent'), $calEvent, freeBusyManager, self.element, event); - } + if (!$calEvent.length) { + return; + } + + freeBusyManager = self.getFreeBusyManagerForEvent($calEvent.data('calEvent')); + + if (options.allowEventDelete && $target.hasClass('wc-cal-event-delete')) { + options.eventDelete($calEvent.data('calEvent'), $calEvent, freeBusyManager, self.element, event); + } else { + options.eventClick($calEvent.data('calEvent'), $calEvent, freeBusyManager, self.element, event); } }).mouseover(function(event) { var $target = $(event.target); @@ -612,25 +619,31 @@ return; } - if ($target.hasClass('wc-cal-event')) { - options.eventMouseover($target.data('calEvent'), $target, event); - } - if ($target.hasClass('wc-time') || $target.hasClass('wc-title')) {
- options.eventMouseover($target.parents('.wc-cal-event').data('calEvent'), $target, event);
+ var $calEvent = $target.hasClass('wc-cal-event') ? $target : $target.parents('.wc-cal-event'); + + if (!$calEvent.length || !$calEvent.data('calEvent')) { + return; } + + options.eventMouseover($calEvent.data('calEvent'), $calEvent, event); }).mouseout(function(event) { var $target = $(event.target); + if (self._isDraggingOrResizing($target)) { return; } - if ($target.hasClass('wc-cal-event')) { - if ($target.data('sizing')) { return;} - options.eventMouseout($target.data('calEvent'), $target, event); + + var $calEvent = $target.hasClass('wc-cal-event') ? $target : $target.parents('.wc-cal-event'); + + if (!$calEvent.length || !$calEvent.data('calEvent')) { + return; } - if ($target.hasClass('wc-time') || $target.hasClass('wc-title')) {
- if ($target.data('sizing')) { return;}
- options.eventMouseout($target.parents('.wc-cal-event').data('calEvent'), $target, event);
+ + if ($calEvent.data('sizing')) { + return; } + + options.eventMouseout($calEvent.data('calEvent'), $calEvent, event); }); }, |