addEvent类型不匹配IE8

时间:2018-11-28 15:05:11

标签: javascript internet-explorer-8 type-mismatch attachevent

使用以下代码,我在IE8中收到“类型:不匹配”错误。

    function showTabs() {
    for (var i = 0; i < tabs.length; i++) {
        tabs[i].style.display = "inline-block";
        if (tabs[i]) {
            console.log(tabs[i] + " " + i);
        }
    }
}

function showThumbBoxes() {
    for (var i = 0; i < thumbsContainers.length; i++) {
        thumbsContainers[i].style.display = "block";
        if (thumbsContainers[i]) {
            console.log(thumbsContainers[i] + " " + i);
        }
    }
}

function loadImages() {
    for (var i = 0; i < lazyImages.length; i++) {
        if (lazyImages[i].getAttribute("data-src")) {
            lazyImages[i].src = lazyImages[i].getAttribute("data-src");
            if (lazyImages[i]) {
                console.log(lazyImages[i] + " " + i);
            }
        }
    }
}

function hideContainers() {
    for (var i = 0; i < hiddenContainers.length; i++) {
        hiddenContainers[i].style.display = "none";
        if (hiddenContainers[i]) {
            console.log(hiddenContainers[i] + " " + i);
        }
    }
}

function setUpPage() {
    showTabs();
    showThumbBoxes();
    loadImages();
    hideContainers();
}

if (window.addEventListener) {
    window.addEventListener("load", setUpPage())
} else {
    window.attachEvent("load", setUpPage()); <<< Here seems to be causing issues.
}

我已经逐步完成了代码,它正确地遍历了所有内容,并将所有内容加载到页面中。在遍历setUpPage函数的最后一个花括号后,它又回到了attachEvent("load", setUpPage());上,当我再次单击逐步浏览时,出现了不匹配错误。不知道发生了什么,但是由于该错误,我的脚本的其余部分将无法加载。

有人有主意吗?

1 个答案:

答案 0 :(得分:1)

使用formattedText.LineHeight = _textBlock.LineHeight; ,您需要添加事件名称+,因此该事件将被称为attachEvent

更新

这两个事件侦听器的第二个参数都是回调,因此在触发事件时将执行它们。 为此,您需要删除函数调用的括号。