Book Image

Mastering jQuery

By : Alex Libby
Book Image

Mastering jQuery

By: Alex Libby

Overview of this book

<p>Mastering jQuery has been written not only to help maximize your skills with core functionality in the library, but also to explore some of the more intriguing ways of using the library to achieve real-world solutions that could feature on any website or online environment.</p> <p>You'll start with a look at some of the more advanced ways to incorporate the library into your pages, followed by working with forms and advanced form validation using regular expressions. Next you'll move on to animating in jQuery, advanced event handling, and using jQuery effects.</p> <p>Finally, you will develop practical examples of using jQuery with external functionality such as node-webkit, before finishing with a session on optimizing your version of the library for maximum efficiency and exploring best practices for using QUnit.</p>
Table of Contents (21 chapters)
Mastering jQuery
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Replacing or modifying existing behaviors


So, how can we effect a (temporary) change in the core functionality of jQuery?

It all starts with the use of an Immediately Invoked Function Expression (IIFE); we then simply save a version of the original function before overriding it with our new function.

Note

You may have heard the term self-executing anonymous function being used; it is a misleading phrase, although it means the same thing as an IIFE, which is a more accurate description.

Let's see what the basic framework looks like in action:

(function($){
  // store original reference to the method
  var _old = $.fn.method;
  $.fn.method = function(arg1,arg2){
    if ( ... condition ... ) {
      return ....
    } 
    else { // do the default
      return _old.apply(this,arguments);
    }
  };
})(jQuery);

If you were expecting something more complex, then I am sorry to disappoint you; there isn't a great deal of complexity required for a basic monkey patch! The extent of what goes into a patch...