Skip to content

carlosrberto/nova

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nova.js

A small library with utilities for class based JavaScript programming

Creating Classes

var DOMReady = nova.Class({
    initialize: function() {
        $($.proxy(this.domReady, this));
    },

    domReady: function() {
        
    }
});
var CustomEvents = nova.Class({
    addEvent: function(ev, fn) {
        this.events = this.events || {};
        this.events[ev] = this.events[ev] || [];
        this.events[ev].push(fn);
    },

    trigger: function(ev, args) {
        if ( this.events && this.events[ev] ) {
            var events = this.events[ev], i, l = events.length;
            for (;i < l; i++) {
                events[i].apply(null, args);
            };
        }
    }
});
var ContextSelector = nova.Class({
    $: function(selector) {
        return $(selector, this.el);
    }
});

Extending and Implementing Classes

var ElementView = nova.Class({
    extend: DOMReady,
    implement: [CustomEvents, ContextSelector]
});
var ProductDetail = ElementView.extend({
    domReady: function() {
        this.el = $('body');
        this.changeColor();
    },

    changeColor: function() {
        this.$('p').css('color', 'red');
    }    
})

var product = new ProductDetail();

About

A small library with utilities for class based JavaScript programming

Resources

Stars

3 stars

Watchers

2 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors