D3.js. ile çalışıyorum D3.js: Dur geçişleri kesintiye uğradı mı?
Bu
bir JSFiddle sorunu sergilemekte ilki sona ermeden önce ikinci bir geçiş başlarsa: Ben geçişler güzel çalışma var, ama sadece tek bir sorun var http://jsfiddle.net/kqxhj/11/Çalışıyor zaman ince çoğu - CDG ve LAX, veri değiştikçe eklenir ve kaldırılır - ancak düğmeye art arda iki kez tıklarsanız, yeni öğelerin görünmediğini fark edersiniz.
Bu
benim kod et:function update(data) {
var g = vis.selectAll("g.airport").data(data, function(d) {
return d.name;
});
var gEnter = g.enter().append("g")
.attr("class", function(d) {
return "airport " + d.name;
});
// Perform various updates and transitions...
[...]
// Remove exited elements.
g.exit().transition()
.duration(1000)
.attr("transform", "translate(0," + 1.5*h + ")");
g.exit().transition().delay(1000)
.remove();
}
d3.select('#clickme').on("click", function() {
update(current_data);
});
ben neler olduğunu anlamaya biraz ayıklama ifadeleri eklemek için denedim ama görebildiğim bütün o olur, çıkış seçimi olmasıdır 4 element in, 3 değil - neden olduğunu anlamıyorum.
D3'te veya temel JavaScript'te geçişlerin çakışmamasını sağlayabileceğimin bir yolu var mı?
['end' event] 'i (https://github.com/mbostock/d3/wiki/Transitions#wiki-each) dinlemeniz ve yalnızca bir sonraki geçişi yalnızca gerçekleştikten sonra başlatmanız gerekir. Alternatif olarak, ['transition.transition()'] 'a bakın (https://github.com/mbostock/d3/wiki/Transitions#wiki-transition). İşte bir [harika makale] (http://bost.ocks.org/mike/transition/#life-cycle) kontrol etmelisiniz. –
Ayrıca, geçiş işleminin sonunda gerçekleşir, bu nedenle yalnızca düğümleri kaldırmak için iki çıkış geçişi oluşturmanız gerekmez. [Transition.remove belgelerine bakın] (https://github.com/mbostock/d3/wiki/Transitions#wiki-remove). – mbostock