Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery Stopped working suddenly

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,'"> &#187;</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(' '));
        });
    };
like image 596
TheJamesOne Avatar asked Nov 20 '25 01:11

TheJamesOne


1 Answers

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
like image 135
Tom Walters Avatar answered Nov 22 '25 03:11

Tom Walters



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!