fix(activator): properly activate elements nested inside an item.

Addresses #1373.

Before: if an `<a>`, `ng-click`, or `<button>` inside of a .item,
was clicked, the activator would walk up .item and activate it.

Now:  If an `<a>`, `ng-click`, or `<button>` inside of a
.item is clicked, the activator will activate that element.

Additionally, CSS was added so `a.item-content.activated` would look
activated.
This commit is contained in:
Andrew Joslin
2014-05-13 07:27:54 -06:00
parent 569d7165aa
commit 3c15b118ca
4 changed files with 21 additions and 10 deletions

View File

@@ -44,7 +44,7 @@ describe('Ionic Element Activator', function() {
expect(e.target.classList.contains('activated')).toEqual(false);
});
it('Should activate .item with a child "a"', function() {
it('Should activate "a" in a .item', function() {
var itemEle = document.createElement('div');
itemEle.className = 'item';
@@ -54,11 +54,11 @@ describe('Ionic Element Activator', function() {
var e = { target: aEle };
ionic.activator.start(e);
expect(itemEle.classList.contains('activated')).toEqual(true);
expect(aEle.classList.contains('activated')).toEqual(false);
expect(itemEle.classList.contains('activated')).toEqual(false);
expect(aEle.classList.contains('activated')).toEqual(true);
});
it('Should activate .item with a child "div.item-content a"', function() {
it('Should activate "div.item-content a" child of .item', function() {
var itemEle = document.createElement('div');
itemEle.className = 'item';
@@ -72,12 +72,12 @@ describe('Ionic Element Activator', function() {
var e = { target: aEle };
ionic.activator.start(e);
expect(itemEle.classList.contains('activated')).toEqual(true);
expect(itemEle.classList.contains('activated')).toEqual(false);
expect(itemContentEle.classList.contains('activated')).toEqual(false);
expect(aEle.classList.contains('activated')).toEqual(false);
expect(aEle.classList.contains('activated')).toEqual(true);
});
it('Should activate .item with a child "div.item-content div[ng-click]"', function() {
it('Should activate child "div.item-content div[ng-click]" of a .item', function() {
var itemEle = document.createElement('div');
itemEle.className = 'item';
@@ -92,9 +92,9 @@ describe('Ionic Element Activator', function() {
var e = { target: divEle };
ionic.activator.start(e);
expect(itemEle.classList.contains('activated')).toEqual(true);
expect(itemEle.classList.contains('activated')).toEqual(false);
expect(itemContentEle.classList.contains('activated')).toEqual(false);
expect(divEle.classList.contains('activated')).toEqual(false);
expect(divEle.classList.contains('activated')).toEqual(true);
});
});