7

So I know what this does:

$(document).ready(function(){
    // Your code here...
});

Now I have seen people doing this lately:

<script type="text/javascript">     
$(function(){
    // Your code here...
});
</script>

Are these two ways of doing the same thing?

I see an anonymous function being declared inside a jquery selector here, but never actually being invoked, yet by the way the page runs it seems that this may just run on pageload.

James
  • 2,454
  • 1
  • 22
  • 22
thirsty93
  • 2,602
  • 6
  • 26
  • 26
  • Lately? This has been available for the last 5 years.... – blockhead Jun 17 '12 at 18:54
  • That's one of the things I dislike about jquery... in pursuit of brevity, it seriously sacrifices (re)discoverability. IIRC, `$(...)` can do at least three completely different things, depending on the type of the argument, and how do you look up such a thing? You can *if you're familiar with the docs* - and that's precisely the point. The language is designed for those who stay familiar with its details. `` – LarsH Aug 15 '12 at 13:35
  • P.S. In this case, if you remember that `$` is an alias for `jQuery`, you can look it up here: http://api.jquery.com/jQuery/ – LarsH Aug 15 '12 at 13:42

2 Answers2

7

yes, they're doing the same thing. the $() function wraps $(document).ready() when the parameter to the call is a single function object.

(Edited to reflect a question in comment)

Ken Browning
  • 28,693
  • 6
  • 56
  • 68
  • So whenever you use a jquery selector a quiet little document ready check is happening in the background? – thirsty93 Feb 27 '09 at 02:21
  • 3
    No, jQuery checks the type of the object passed to it and if it is a function it is bound to the document's ready event; if it's passed a string, it will do something else (like select DOM elements). – Alex Barrett Feb 27 '09 at 02:28
5

Yes, they are doing exactly the same thing.

$(function(){
    // Your code here...
});

is a shortcut for

$(document).ready(function(){
    // Your code here...
});
Chatu
  • 4,688
  • 3
  • 22
  • 15