Opened 11 years ago

Closed 11 years ago

#7797 closed defect (fixed)

IE: with _onDayClick in dijit._Calendar

Reported by: datasage Owned by: Adam Peller
Priority: high Milestone: 1.3
Component: Dijit Version: 1.2beta
Keywords: Cc:
Blocked By: Blocking:

Description (last modified by bill)

While trying to track down a diffrent IE6 error with the DateTimeTextBox, I found an issue with the event handling for the onDayClick function.

In IE6, if you click on a day, hold down the mouse button and drag the mouse to another day before releasing the button, an error will be generated in this function:

_onDayClick: function(/*Event*/evt){
			var node = evt.target;
			dojo.stopEvent(evt);
			while(!node.dijitDateValue){
				node = node.parentNode;
			}
			if(!dojo.hasClass(node, "dijitCalendarDisabledDate")){
				this.attr('value', node.dijitDateValue);
				this.onValueSelected(this.value);
			}
		},

Essentially, with that action, the event object does not have a target member.

Steps to reproduce:

  1. In IE6 go to the test page: http://download.dojotoolkit.org/current-dev/dojo-release-1.2.0/dijit/tests/form/test_DateTextBox.html
  2. Click on any DateTimeTextBox to open the calendar.
  3. Click on a day, and hold down the mouse button.
  4. Move the mouse to another day, and release.
  5. You will see an error message.

I tested in IE6 and FF3. Only IE6 would produce the error.

Change History (2)

comment:1 Changed 11 years ago by bill

Description: modified (diff)
Owner: set to Adam Peller

Adam, can you handle?

The obvious solution would be to setup a separate handler on each day node. Might be a performance hit though.

Alternately, maybe there's another property in the event object we can use, like evt.relatedTarget.

Or, could just ignore the event in the case that evt.target is null.

comment:2 Changed 11 years ago by Adam Peller

Milestone: tbd1.3
Resolution: fixed
Status: newclosed
Summary: IE6 Error with _onDayClick in dijit._CalendarIE: with _onDayClick in dijit._Calendar

Fixed in [15790] and [15792]

Note: See TracTickets for help on using tickets.