D3. Js-ориентированный график, где путь несовместим с ie10, т.е.11 [duplicate]

В случае:

char *x = "fred";

x является lvalue - ему может быть присвоено. Но в случае:

char x[] = "fred";

x не является lvalue, это rvalue - вы не можете назначить ему.

20
задан Sam Fen 29 March 2013 в 19:46
поделиться

4 ответа

Это быстрый способ сделать это, что хорошо работает. Я не заметил никаких мерцающих или связанных с производительностью проблем.

Просто добавьте узел svg в его исходное место:

if (navigator.appVersion.indexOf("MSIE 10") != -1) {
    svgNode.parentNode.insertBefore(svgNode, svgNode);
}

Конечно, вы можете использовать любой браузер, обнюхивающий выбор ..

27
ответ дан Christian Lund 31 August 2018 в 13:16
поделиться
1
ответ дан KenZhu 31 August 2018 в 13:16
поделиться

Я хочу немного рассказать об удивительном ответе @ChristianLund и о том, как я успешно использовал его в своем коде

. В моей силовой анимации у меня есть функция tick, которая выглядит так:

force.on("tick", function() {
  ...
});

Я также сохраняю все мои ссылки в графе внутри переменной link, определенные следующим образом:

var link = svg.selectAll(".link").data(links).enter() ...

Теперь, чтобы реализовать магию, предложенную Кристианом, я Я добавил эту строку в начале моей функции tick:

force.on("tick", function() {
  link.each(function() {this.parentNode.insertBefore(this, this); });
  ...
});

Это, похоже, исправляет проблемы IE 10 ... конечно, рекомендуется добавить этот патч только в IE 10

17
ответ дан talkol 31 August 2018 в 13:16
поделиться

Вы можете попробовать этот взлом:

$("#button4").click(function () {
$("#line1")[0].setAttributeNS(null, "x1", 50);
$("#line1")[0].setAttributeNS(null, "y1", 50);
$("#line1")[0].setAttributeNS(null, "x2", 150);
$("#line1")[0].setAttributeNS(null, "y2", 50);
var oldAttValueDisplay = $("#line1")[0].getAttributeNS(null, "display");
$("#line1")[0].setAttributeNS(null, "display", "none");
setTimeout(function() {$("#line1")[0].setAttributeNS(null, "display", oldAttValueDisplay);}, 0);
// static: setTimeout(function() {$("#line1")[0].setAttributeNS(null, "display", "block");}, 0);    

});

0
ответ дан ZwergWade 31 August 2018 в 13:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: