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.
2 Answers 2
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)
answered Feb 27, 2009 at 2:18
Ken Browning
29.1k6 gold badges58 silver badges68 bronze badges
Sign up to request clarification or add additional context in comments.
2 Comments
thirsty93
So whenever you use a jquery selector a quiet little document ready check is happening in the background?
Alex Barrett
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).
Yes, they are doing exactly the same thing.
$(function(){
// Your code here...
});
is a shortcut for
$(document).ready(function(){
// Your code here...
});
answered Feb 27, 2009 at 2:21
Chatu
4,7984 gold badges25 silver badges15 bronze badges
Comments
lang-js
$(...)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.</rant>$is an alias forjQuery, you can look it up here: api.jquery.com/jQuery