It appears you have not yet registered with DEVPPL. To register please click here... (it's fast, easy and free!)

Forum

Log In Sponsors
Board index Programming JavaScript Forum

Listeners not working with onclick

Listeners not working with onclick

Postby Echilon on Sat Oct 20, 2007 6:24 pm

I've decided it's time I made my site more accessible. I'm trying to get rid of all inline onclick handlers and place them in an external file. I've search around and found the following code from AListApart, which works with onclick. I tried to modify it for mouseovers but Firebug just reports an exception.
Code: Select all
// http://www.alistapart.com/articles/popuplinks
function listen(event, elem, func) {
    elem = getElem(elem);
    if (elem.addEventListener)  // W3C DOM
        elem.addEventListener(event,func,false);
    else if (elem.attachEvent)  // IE DOM
        elem.attachEvent('on'+event, function(){ func(new W3CDOM_Event(elem)) } );
        // for IE we use a wrapper function that passes in a simplified faux Event object.
    else throw 'cannot add event listener';
}
function W3CDOM_Event(currentTarget) {
    this.currentTarget  = currentTarget;
    this.preventDefault = function() { window.event.returnValue = false }
    return this;
}
function getElem(elem) {
    if (document.getElementById) {
        if (typeof elem == "string") {
            elem = document.getElementById(elem);
            if (elem===null) throw 'cannot get element: element does not exist';
        } else if (typeof elem != "object") {
            throw 'cannot get element: invalid datatype';
        }
    } else throw 'cannot get element: unsupported DOM';
    return elem;
}

The in the head:
Code: Select all
listen('load', window, function() {
listen('mouseover','trigger1',function1);
listen('mouseover','trigger2',function2);
});

Is there any way I can use onclicks which aren't inline?
User avatar
Echilon
 
Posts: 3
Joined: Sun Dec 31, 2006 11:40 am
Location: England

Who is online

Users browsing this forum: No registered users and 2 guests