Accordion: Don't stop propagation when clicking in headers. Fixes #4732 - accordion steals header clicks.

This commit is contained in:
Scott González 2009-07-31 00:23:41 +00:00
parent c0ba6ccda7
commit 4f03ac24fd

View File

@ -101,7 +101,10 @@ $.widget("ui.accordion", {
this.headers.find('a').attr('tabIndex','-1'); this.headers.find('a').attr('tabIndex','-1');
if (o.event) { if (o.event) {
this.headers.bind((o.event) + ".accordion", function(event) { return self._clickHandler.call(self, event, this); }); this.headers.bind((o.event) + ".accordion", function(event) {
self._clickHandler.call(self, event, this);
event.preventDefault();
});
} }
}, },
@ -181,7 +184,8 @@ $.widget("ui.accordion", {
break; break;
case keyCode.SPACE: case keyCode.SPACE:
case keyCode.ENTER: case keyCode.ENTER:
return this._clickHandler({ target: event.target }, event.target); this._clickHandler({ target: event.target }, event.target);
event.preventDefault();
} }
if (toFocus) { if (toFocus) {
@ -246,7 +250,7 @@ $.widget("ui.accordion", {
_clickHandler: function(event, target) { _clickHandler: function(event, target) {
var o = this.options; var o = this.options;
if (o.disabled) return false; if (o.disabled) { return; }
// called only when using activate(false) to close all parts programmatically // called only when using activate(false) to close all parts programmatically
if (!event.target && o.collapsible) { if (!event.target && o.collapsible) {
@ -263,7 +267,7 @@ $.widget("ui.accordion", {
}, },
toShow = (this.active = $([])); toShow = (this.active = $([]));
this._toggle(toShow, toHide, data); this._toggle(toShow, toHide, data);
return false; return;
} }
// get the click target // get the click target
@ -272,7 +276,7 @@ $.widget("ui.accordion", {
// if animations are still active, or the active header is the target, ignore click // if animations are still active, or the active header is the target, ignore click
if (this.running || (!o.collapsible && clickedIsActive)) { if (this.running || (!o.collapsible && clickedIsActive)) {
return false; return;
} }
// switch classes // switch classes
@ -299,7 +303,7 @@ $.widget("ui.accordion", {
this.active = clickedIsActive ? $([]) : clicked; this.active = clickedIsActive ? $([]) : clicked;
this._toggle(toShow, toHide, data, clickedIsActive, down); this._toggle(toShow, toHide, data, clickedIsActive, down);
return false; return;
}, },