javascript - 在 IE 和 JSFiddle 中使用 elem.dataset 时出现问题

标签 javascript

在我在 Chrome 上创建的这个 JSFiddle 中,我发现它无法在 IE 上运行(我使用的是 IE9)。关于此的任何原因:http://jsfiddle.net/ZSB67/ .

var backImage = [
    "http://alm7.wikispaces.com/file/view/RedBackground.bmp/144018347/RedBackground.bmp",
    "http://www.time2man-up.com/wp-content/uploads/2011/07/black-background.jpg",
    "http://1.bp.blogspot.com/--GorNQoEUxg/TfWPyckVeMI/AAAAAAAAAHk/0208KqQf3ds/s1600/yellow_background.jpg",
    ""
    ];

function changeBGImage(whichImage) {
    if (document.body) {
        document.body.style.background = "url(\"" + backImage[whichImage] + "\")";
    }
}
var buttons = document.querySelectorAll('.bg_swap'),
    button;

for (var i = 0; i < buttons.length; i++) {
    button = buttons[i];
    button.onclick = function() {
        changeBGImage(this.dataset.index);
    };
}

最佳答案

IE < 10 不支持 elem.dataset。您需要显式获取属性:http://jsfiddle.net/ZSB67/1/ .

changeBGImage(this.getAttribute('data-index'));

将来,您可能需要按 F12 并查看控制台是否有错误,因为它说明了导致此处出现问题的原因。

关于javascript - 在 IE 和 JSFiddle 中使用 elem.dataset 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26965050/

相关文章:

javascript - 历史 API/Angular : how to go back to predetermined URL

javascript - AngularJS:无法访问 Controller 中的对象属性

javascript - JavaScript 函数是否可以将其自己的函数调用作为字符串返回?

javascript - DayPilot Scheduler - 垂直滚动条永远不会出现

javascript - 慢咕噜 watch

javascript - es6 中对象的解构键、值和索引

javascript - 如何添加 JavaScript 事件处理程序,以便在单击按钮时提示用户输入颜色?

javascript - react createElement 与 cloneElement

javascript - 使用 map 函数时减少 javascript 代码

javascript - 如何使用多个键按对象的值对对象进行排序?