I'm unsure of why I'm getting this error, but for some reason jQuery's $
is not being recognised?
jQuery(window).load(function ($) {
'use strict';
/* Preloader */
$(".status").fadeOut();
$(".preloader").delay(1000).fadeOut("slow");
}); /* END WIDNOW LOAD */
NOTE: changing $
to jQuery
fixes the issue (so I'm sure jQuery is referenced correctly, am using version 2.1.4), but I would like to continue using $
for semantics.
You are overriding the $
variable inside your function, because you have an argument with the same name.
Remove the $
argument and $
will again refer to the global scoped one, equal to jQuery
.
jQuery(window).load(function () {
'use strict';
/* Preloader */
$(".status").fadeOut();
$(".preloader").delay(1000).fadeOut("slow");
}); /* END WIDNOW LOAD */
You can use a parameter for the handler function passed into load
. I suggest the same as Anik Islam Abhi's answer: use another name for the argument. For example e
or eventArgs
.
Note that you (or others landing here) might actually be trying to use a pattern that makes sure jQuery
is available as $
inside certain scope (e.g. because there may be a conflict with another library also declaring $
in global scope). If that's the case, I suggest something along these lines:
(function($) {
$(window).load(function () {
'use strict';
/* Preloader */
$(".status").fadeOut();
$(".preloader").delay(1000).fadeOut("slow");
}); /* END WIDNOW LOAD */
}(jQuery));
This will wrap all your code inside a function which is executed immediately with jQuery
passed in as an argument. Because $
is the name of the argument of that function, you'll know for sure that $
is equal to the global jQuery
within that function's scope.
You are overriding event parameter with $
Try like this
jQuery(window).load(function (e) {
'use strict';
/* Preloader */
$(".status").fadeOut();
$(".preloader").delay(1000).fadeOut("slow");
}); /* END WIDNOW LOAD */
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