* @cfg {Boolean} preventDefault (true | false) default false
* @cfg {String} tabId the tab that this item activates.
* @cfg {String} tagtype (a|span) render as a href or span?
- * @cfg {Boolean} animateRef (true|false) link to element default false
+ * @cfg {Boolean} animateRef (true|false) link to element default false
* @constructor
* Create a new Navbar Item
tag: 'li',
cls: 'nav-item'
- }
+ };
+
if (this.active) {
cfg.cls = typeof(cfg.cls) == 'undefined' ? 'active' : cfg.cls + ' active';
}
onClick : function(e)
{
+ if (e.getTarget('.dropdown-menu-item')) {
+ // did you click on a menu itemm.... - then don't trigger onclick..
+ return;
+ }
+
if(
this.preventDefault ||
- this.href == '#' ||
- (this.animateRef && this.href.charAt(0) == '#')
+ this.href == '#'
){
+ Roo.log("NavItem - prevent Default?");
e.preventDefault();
}
return;
}
- Roo.log("fire event clicked??");
+
+
+ //Roo.log("fire event clicked");
if(this.fireEvent('click', this, e) === false){
return;
};
return;
}
- if(this.animateRef && this.href.charAt(0) == '#'){
+ //Roo.log(this.href);
+ var ael = this.el.select('a',true).first();
+ //Roo.log(ael);
+
+ if(ael && this.animateRef && this.href.indexOf('#') > -1){
+ //Roo.log(["test:",ael.dom.href.split("#")[0], document.location.toString().split("#")[0]]);
+ if (ael.dom.href.split("#")[0] != document.location.toString().split("#")[0]) {
+ return; // ignore... - it's a 'hash' to another page.
+ }
+ Roo.log("NavItem - prevent Default?");
+ e.preventDefault();
this.scrollToElement(e);
}
- var p = this.parent();
+ var p = this.parent();
+
if (['tabs','pills'].indexOf(p.type)!==-1) {
if (typeof(p.setActiveItem) !== 'undefined') {
p.setActiveItem(this);
}
}
+
// if parent is a navbarheader....- and link is probably a '#' page ref.. then remove the expanded menu.
if (p.parentType == 'NavHeaderbar' && !this.menu) {
// remove the collapsed menu expand...
p.parent().el.select('.navbar-collapse',true).removeClass('in');
}
-
},
isActive: function () {
},
setActive : function(state, fire, is_was_active)
{
- if (this.active && !state & this.navId) {
+ if (this.active && !state && this.navId) {
this.was_active = true;
var nv = Roo.bootstrap.NavGroup.get(this.navId);
if (nv) {
{
var c = document.body;
- var target = Roo.get(c).select('a[name=' + this.href.replace('#', '') +']', true).first();
+ /*
+ * Firefox / IE places the overflow at the html level, unless specifically styled to behave differently.
+ */
+ if(Roo.isFirefox || Roo.isIE || Roo.isIE11){
+ c = document.documentElement;
+ }
+
+ var target = Roo.get(c).select('a[name=' + this.href.split('#')[1] +']', true).first();
if(!target){
return;
var options = {
target : target,
value : o[1]
- }
+ };
this.fireEvent('scrollto', this, options, e);