JavaScript の attachEvent でハマる

こんな感じのコードを書いたのだが、IEで動かなくて四苦八苦。

function addEvent(event, obj, func) {
    if (obj.addEventListener) {
        obj.addEventListener(event, func, false);
    } else {
        obj.attachEvent('on'+event, func);
    }

function init() {
    var inputs = document.getElementById('hoge').getElementsByTagName('input');
    for (var i = 0; i < inputs; i++) {
        if (inputs[i].type == 'checkbox') {
            addEvent('click', inputs[i], function(e){
                fooFunc(this);
            });
        }
    }
}

function fooFunc(obj) {
   ...
}

色々と調べまわった挙句、http://nantan.xrea.jp/item/1617/catid/3 の記事を読んで解決しました。

            addEvent('click', inputs[i], function(e){
-               fooFunc(this);
+               fooFunc(e.srcElement ? e.srcElement : this);
            });

ハンドラに引数を持たせる方法は使ったことなかったので、まさかこんな落とし穴があるとは。