Hacker News new | past | comments | ask | show | jobs | submit login

You don’t need that jQuery parameter (in fact, I think that makes it invalid JavaScript). ie.

  jQuery(function($) {
    // your code using $
  });
You might be thinking of the recommended method of creating a closure, in which the code is executed immediately rather than upon page load:

  (function($) {
    // your code using $
  })(jQuery);



It's not invalid JavaScript, and it does work, but it isn't doing exactly what he thinks it's doing.

You need the jQuery parameter to make sure the $ in your code refers to the jQuery object and not something else. Without it your code is just referencing the global $ object which some other framework could have poached for itself.

But I suspect you already know all that. What his code is actually doing is creating an anonymous function intended to provide a safe place for $-based code, evaluating it immediately, and then passing the return value to the jQuery function. Depending on the return value this may be useful or not, but I'm pretty sure it's not what he intended. His function is evaluated immediately rather than when the DOM is ready.

What you want to do is combine the second part of your example with your already-written code:

    (function($) {
      $(function () {
        // your code to fire when the DOM is ready
      });
    })(jQuery);


You are correct. That was a mistake from my part.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: