jQuery addClass()在bootstraps shown.bs.tab事件中

时间:2017-03-29 06:26:55

标签: javascript jquery css twitter-bootstrap svg

我有两个带有svg-graphics的对象,每个对象位于Bootstrap的.tab-pane中。 在这些SVG内部,我想要对样式进行样式化,因此使用jquery添加css类。在调试时,我可以看到类仍然正确地添加到$ elem.classList,但不在svg中的元素class-attribute内。

这是添加类的代码。我唯一要改变前5行的地方,在bootstrap Panel里面工作。

$("a[data-toggle='tab']").on('shown.bs.tab', function (e) {
    e.preventDefault();
    e.stopPropagation();
    var whichObj = e.target.href.slice(-5);
    var doc = $(".raumplan",whichObj)[0];
    var svg = doc.contentDocument.documentElement;

    var refs = new XMLHttpRequest();
    refs.open("GET", "/RaumRefs", true);
    refs.onreadystatechange = function (e) {
        if (refs.readyState === 4 && refs.status === 200) {
            raumReferat = JSON.parse(refs.responseText);
            for (var i = 0; i < raumReferat.length; i++) {
                var id = raumReferat[i].raum.replace(/\./g,'\\.');
                if (id != "") {
                    var elem = $("#" + id, svg);

                    elem.addClass("ref" + raumReferat[i].referat+" buero");
                    if (raumReferat[i].besetzt == true) {
                        elem.addClass("besetzt");
                    }
                }
            }
        }
    }
    refs.onerror = function (e) {
        console.error(refs.statusText);
    }
    refs.send(null);
}

正确地从正确的svg中选择idm,并添加正确的类。但是为什么没有面板对它没有影响呢?

其他信息: 这只发生在chrome中,即firefox正在运行,就像它们应该的那样。

0 个答案:

没有答案