fix(item): clicks climb 5 levels looking for an item to activate, but not 6. Fixes #1921

This commit is contained in:
Perry Govier
2014-08-19 14:20:35 -05:00
parent 0bf6bc575b
commit 840c014b27
2 changed files with 34 additions and 1 deletions

View File

@@ -18,7 +18,7 @@
var ele = e.target;
var eleToActivate;
for(var x=0; x<4; x++) {
for(var x=0; x<6; x++) {
if(!ele || ele.nodeType !== 1) break;
if(eleToActivate && ele.classList.contains('item')) {
eleToActivate = ele;
@@ -32,6 +32,10 @@
eleToActivate = ele;
break;
}
// no sense climbing past these
if(ele.classList.contains('pane') || ele.tagName == 'BODY' || ele.tagName == 'ION-CONTENT'){
break;
}
ele = ele.parentElement;
}

View File

@@ -76,6 +76,35 @@ describe('Ionic Element Activator', function() {
expect(itemContentEle.classList.contains('activated')).toEqual(false);
expect(aEle.classList.contains('activated')).toEqual(true);
});
it('Should activate 5 levels up, but not 6', function() {
var itemEle = document.createElement('div');
itemEle.className = 'item';
var itemContentEle = document.createElement('a');
itemContentEle.className = 'item-content';
itemEle.appendChild(itemContentEle);
var div1 = document.createElement('div');
itemContentEle.appendChild(div1);
var div2 = document.createElement('div');
div1.appendChild(div2);
var div3 = document.createElement('div');
div2.appendChild(div3);
var div4 = document.createElement('div');
div3.appendChild(div4);
var div5 = document.createElement('div');
div4.appendChild(div5);
var div6 = document.createElement('div');
div5.appendChild(div6);
var e = { target: div6 };
ionic.activator.start(e);
expect(itemContentEle.classList.contains('activated')).toEqual(false);
var e = { target: div5 };
ionic.activator.start(e);
expect(itemContentEle.classList.contains('activated')).toEqual(true);
});
it('Should activate child "div.item-content div[ng-click]" of a .item', function() {
var itemEle = document.createElement('div');