Example of registering and raising events

How to register an event handler in a simple javascript object.

by junto

HTML

<script src="https://getfirebug.com/firebug-lite-debug.js"></script>

JavaScript

// declare namespace if not already defined
var RP = window.RP || {};
    
// events.js
RP.events = {
    RouteLoaded: "RP.RouteManager.RouteLoaded"
};

// route-manager.js
(function ($, undefined) {

    var 
        bingApiKey = "YOUR-BING-API-KEY",
        _options = {
            defaultValue: 10
        };

    //private methods
    var private_method = function(options) {
        var settings = $.extend({}, _options, options);
        return settings.defaultValue;
    }

    var routeLoaded = function(event, args) {
        console.log(args);                        
    }
        
    var init = function() {
        $(document).bind(RP.events.RouteLoaded, routeLoaded);        
    }

    RP.RouteManager = {
        // public methods
        method1: private_method
    };

    init();

})(jQuery);

// document ready
$(document).trigger(RP.events.RouteLoaded, {Data:"test"});