mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
fix(item): clicks climb 5 levels looking for an item to activate, but not 6. Fixes #1921
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user