Link to home
Start Free TrialLog in
Avatar of brgdotnet
brgdotnetFlag for United States of America

asked on

is $(document).ready(function() the same as $(function () {

In JQuery,

is $(document).ready(function() the same as     $(function () {   }
Avatar of duncanb7
duncanb7

There is different between

At $(document).ready(function(),  
The function() will operate after the whole page is completely loaded and DOM is ready.
But
$(function () {   }
is self-start or self calling anonymous function that is just function, it will operate or start as soon as possible when the browser is interpreting your ecma-/javascript  regardless the page being loaded completely or not

Duncan
ASKER CERTIFIED SOLUTION
Avatar of Scott Fell
Scott Fell
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
@duncanb7, I'm just trying to double check because we seem to have different answers for the same thing.  

self calling anonymous function that is just function, it will operate or start as soon as possible when the browser is interpreting your ecma-/javascript

I may be confused, but are you talking about pure javascript? or jquery?
  <script>
    (function(){
 // do something
})();
  </script>

Open in new window

Scott, you are correct and I miss $
And the article mention $(function()) is shorthand for $( document ).ready() at this site. http://learn.jquery.com/using-jquery-core/document-ready/

And my previous post is shown the different between $(document.)ready() and (function()) , javascript self-start function only.

You can test from the following code , if the div tag change color means it work for the code. Finally, it showed only Self-javascript function can not change to green color.

Duncan
<html>
<meta http-equiv="Content-Type" content="text/html; charset=Big5">
<head>
<title>Title</title>
<style>
</style>
<script src="/js/jquery.min.js" type="text/javascript"></script>
<script src="/js/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
(function() {
  document.getElementsByClassName('tap')[0].style.color="Green";
});
$(function() {
  document.getElementsByClassName('tap')[1].style.color="Green";
});
$(document).ready(function() {
document.getElementsByClassName('tap')[2].style.color="Green";
});

</script>
<script type="text/javascript">
</script>
</head>
<body  >
<div class="tap">Self-javascript</div>
<div class="tap">$(function())</div>
<div class="tap">Ready-jquery</div>
</body>
</html>

Open in new window

Scott, you agree ?
Thank you Duncan.   Your description matched something for pure javascript.  If you add the $ or jquery in front, now you are talking about jquery as you suggest, but then the description you gave is incorrect.

The simple correct answer to the question,
is $(document).ready(function() the same as $(function () {
Yes, they are both the same.
Thanks for your reply , please review my post I didn't suggest anything  and I just verify  it by testing for all of you from your previous post to me.

The answer is Yes to the question and  mentioned at this site
http://learn.jquery.com/using-jquery-core/document-ready/

Duncan
To clarify,

$(document).ready(function() {}); is capturing the "ready" event when the document had loaded.

$(function() {}); is passing an anonymous function to the jQuery class. JQuery is configured such that the anonymous function is only called once the DOM has loaded.

More info on frameworks here:
https://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/A_12264-Javascript-Frameworks-what-are-they.html
And JavaScript objects (that is all jQuery is)
https://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/A_13138-Javascript-is-just-an-Object.html