Monday, April 25, 2011

jquery question

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.

From stackoverflow
  • 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)

    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...
    });
    

0 comments:

Post a Comment