Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create a function like jQuery(document).ready

How can I do that?

It seems that you can have multiple jQuery's ready() functions, and they will all run when the DOM is loaded.

So how can I create my own ready()-like function? :)

like image 535
Alex Avatar asked Apr 19 '26 20:04

Alex


1 Answers

function _addEvent(e, evt, handler){
    if(evt == "ready")
        evt = "DOMContentLoaded";

    if(typeof handler !== 'function')return;
    if (e.addEventListener)
        e.addEventListener(evt, handler, false);
    else if (e.attachEvent)
        e.attachEvent("on" + evt, handler);
    else
    {
        var oldHandler = e["on" + evt];   
        function newHandler(event){
            handler.call(e, event);
            if(typeof oldhandler === 'function')oldhandler.call(e, event);
        }
    }
}
var _events = ["ready", "click", "mousedown"]; //...
var _myLib = function(item){
    function eventWorker(item, event){
        this.add = function(handler){
            _addEvent(item, event, handler);
        };
    }
    for(var i=0;i<_events.length;i++)
        this[_events[i]] = (new eventWorker(item, _events[i])).add;
};
var MyLib = function(item){
    return new _myLib(item);
};

MyLib(document).ready(function(){alert("I am ready!");});

Test => http://jsfiddle.net/vgraN/

like image 55
Tolgahan Albayrak Avatar answered Apr 22 '26 10:04

Tolgahan Albayrak



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!