JavaScript错误“预期功能”

时间:2011-07-14 18:10:47

标签: javascript

我有几个这样的听众,听取点击然后显示<div id="c50"><a hre...>CONTENT</a></div>内的内容(在这种情况下)。一切都适用于Opera,Chrome和FF,但不适用于IE。

google.maps.event.addListener(pano50, 'click', function() {    
fireEvent(document.getElementById("c50").getElementsByTagName("a")[0], 'click');
})

Chrome javascript控制台工具在点击后显示此错误(但工作正常):

Uncaught TypeError: object is not a function

但传统上,IE8显示:

Function expected on line 817

这是上面的第一行代码,点击后什么都不做。谢谢你的任何建议!

编辑:这是fireEvent函数:

function fireEvent(element, event) {
    if (document.createEventObject){
        /* for IE */
        return element.fireEvent('on' + event, document.createEventObject());
    }else{
        /* for other browsers */
        var evt = document.createEvent('HTMLEvents');
        evt.initEvent(event, true, true);
    }
    return !element.dispatchEvent(evt);
}

2 个答案:

答案 0 :(得分:2)

你已经在your page上运行了MooTools。 MooTools覆盖IE的内置element.fireEvent()方法,its own normalized method方法适用于所有浏览器。 MooTools的fireEvent()版本需要“点击”而不是“onclick”。

您只需将fireEvent功能更改为使用“click”而不是“onclick”即可解决此问题:

/* for IE */
return element.fireEvent(event, document.createEventObject());

但是,由于MooTools规范化element.fireEvent以适用于所有浏览器,您可以放弃fireEvent功能,而只需直接拨打element.fireEvent()

你可能有更大的问题。你正在使用MooTools和jQuery,这很好,但如果你不知道你在做什么,你可能会很快遇到麻烦。

答案 1 :(得分:1)

它可能是抱怨因为

document.getElementById("c50").getElementsByTagName("a")[0]

不是一个功能。 fireEvent函数来自哪里?