В основном я хотел добавить элемент SVG под div после того, как div добавлен на страницу (путем запуска пользовательского события с помощью jQuery trigger). Когда я попытался сделать это, как показано ниже:Разница компоновки в SVG при динамическом добавлении
Css:
.full-size {
width: 100%;
height: 100%;
}
ЯШ:
var div = $("<div/>").css({'width': '100px', 'height': '100px'});
div.on(<customEvent>, function() {
var svg = $("<svg/>").addClass("full-size");
svg.appendTo(div);
});
размер SVG остается 0px 0px х. Но когда я добавляю SVG через d3 (показано ниже), он получает всю ширину и высоту div.
ЯШ:
var div = $("<div/>").attr("id", "div").css({'width': '100px', 'height': '100px'});
div.on(<customEvent>, function() {
var svg = d3.select("#div").append("svg:svg").attr("class", "full-size");
});
Может кто-нибудь пролить некоторый свет на то, почему это происходит?
Похоже, что во втором случае вы не добавляете 'div', а элемент с идентификатором' div'. –
Это не может быть главной проблемой - если нет элемента div div div, то d3 просто ничего не добавит. Версия d3 работает так, как ожидалось, версия JQuery - нет. – AmeliaBR