For some reason It appears all the jQuery on my site has stopped working. There is a jQuery slider and drop down menus both of which has stopped working. I have not changed any of the code. It's a word press site. My jQuery is inactive, it appears to be disabled. All the functionality of the jQuery is dead. However I placed a simple function in the header of the website to check if jQuery was loading and it worked. So I think it might just be the jQuery in my website that is buggy. But it has worked fone for over a year and it appears that its just stopped working now without reason. Below is a function of the superfish drop down menu that was giving an error: "Uncaught TypeError: Cannot read property 'msie' of undefined $(this).addClass(menuClasses.join(' ')); }); };" according to the chrome console. Can anyone see whats happening?
;(function($){
$.fn.superfish = function(op){
var sf = $.fn.superfish,
c = sf.c,
$arrow = $(['<span class="',c.arrowClass,'"> »</span>'].join('')),
over = function(){
var $$ = $(this), menu = getMenu($$);
clearTimeout(menu.sfTimer);
$$.showSuperfishUl().siblings().hideSuperfishUl();
},
out = function(){
var $$ = $(this), menu = getMenu($$), o = sf.op;
clearTimeout(menu.sfTimer);
menu.sfTimer=setTimeout(function(){
o.retainPath=($.inArray($$[0],o.$path)>-1);
$$.hideSuperfishUl();
if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
},o.delay);
},
getMenu = function($menu){
var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
sf.op = sf.o[menu.serial];
return menu;
},
addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
return this.each(function() {
var s = this.serial = sf.o.length;
var o = $.extend({},sf.defaults,op);
o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
$(this).addClass([o.hoverClass,c.bcClass].join(' '))
.filter('li:has(ul)').removeClass(o.pathClass);
});
sf.o[s] = sf.op = o;
$('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
if (o.autoArrows) addArrow( $('>a:first-child',this) );
})
.not('.'+c.bcClass)
.hideSuperfishUl();
var $a = $('a',this);
$a.each(function(i){
var $li = $a.eq(i).parents('li');
$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
});
o.onInit.call(this);
}).each(function() {
menuClasses = [c.menuClass];
if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
Uncaught TypeError: Cannot read property 'msie' of undefined
$(this).addClass(menuClasses.join(' '));
});
};
You're likely loading the most recent version of jQuery from a CDN such as Google or the jQuery hosting. It's recently been updated, and you appear to be using at least 1 deprecated feature - namely the $.browser method.
From the release notes:
jQuery.browser() removed
The jQuery.browser() method has been deprecated since jQuery 1.3 and is removed in 1.9. If needed, it is available as part of the jQuery Migrate plugin. We recommend using feature detection with a library such as Modernizr.
This is confirmed by your error message:
Uncaught TypeError: Cannot read property 'msie' of undefined
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With