1
데이터 세트간에 변경하는 데 사용되는 한 쌍의 단추가있는 HighMap이 있습니다. 이는 의도 한대로 작동합니다. 데이터 세트 간의 전환이 원활 해 지도록 페이드를 추가하고 싶었습니다. 그러나 페이드 아웃 콜백 기능 내에서도 맵은 페이드 아웃이 완료되기 전에 데이터를 업데이트하는 것처럼 보입니다.Highmaps를 사용하면 페이드를 완성하기 전에 내 jQuery 페이드 인의 콜백이 왜 발생합니까?
var resetMap = function(dataCurrent) {
SetOptions(dataCurrent);
AccessMap.update({title: {text: dataTitle}});
AccessMap.update({colorAxis: {max: dataMax, min: dataMin, minColor: dataMinColor, maxColor: dataMaxColor,type: dataScale}});
AccessMap.update({series:[{name: dataTitle,tooltip:{ valueSuffix: dataTooltipSuffix}}]});
AccessMap.series[0].setData(dataCurrent.slice());
};
$('#setdataPop').click(function() {
$("#container").fadeOut(500,resetMap(pop));
$("#container").fadeIn(500);
});
$('#setdataRate').click(function() {
$("#container").fadeOut(500,resetMap(rate16));
$("#container").fadeIn();
});
(즉, 코드에서 참조 setOptions을 기능을 포함) 내 전체 작업지도의 단순화 된 버전은 여기에 있습니다 : :
https://jsfiddle.net/MossTheTree/h5njdqLf/3/
여기에 버튼 코드 관련 비트입니다
완벽하게 고맙습니다. 그 차이점을 완전히 이해하기 위해서는 더 많은 것을 읽어야 할 것입니다. 콜백 함수를 직접 호출하지 말고 함수를 정의해야합니다. – Moss
그 기능의 부작용을 즉시 원하지 않으므로 직접 호출하지 마십시오. 애니메이션은 사실상 비동기 적이기 때문에 언젠가는 미래에 끝납니다. jQuery를 사용하면 애니메이션이 끝나면 어떻게되는지 정의 할 수 있습니다. 따라서 jQuery에 함수에 대한 참조를 제공하려는 이유가 있기 때문에 애니메이션을 마칠 때 호출 할 수 있습니다. 직접 호출하지 않고 호출 할 수 있습니다. –
또한, 나를 쉽게 만드는 것은 효과에 대한 관점에서 기능을 생각하는 것입니다. 레이블이'()'로 끝날 때마다 즉시 레이블을 호출한다는 의미입니다. 그 전체 비트를 함수 결과 (또는 그 효과)로 대체하면, 바로 그 다음에 또는 그 다음에 일어나기를 원할까요? –