2016-04-07 10 views
0

私のグラフにいくつかの関数を追加しましたが、それらはすべて別々に で動作します。 コード次のようになります。グラフのスタイルを変更した後にグラフが消えてから線の色を変更します

function(chart){ 

    $('#colorchange').click(function() { 
    chart.series[0].update({color:document.getElementById("selectcolor").value}); 
    }); 

    $('#stylechange').click(function() { 
    chart.series[0].update({dashStyle: document.getElementById("selectStyle").value}); 
    }); 

    $('#pointchange').click(function() { 
    var l = chart.series[0].points.length; 

    var p = chart.series[0].points; 
    for(var len = 0; len < l; len++) { 

     p[len].update({ 
     marker: { 
      symbol: document.getElementById("selectpoint").value, 
     } 
     }, false); 
    } 
    }); 

} 
+0

あなたはフィドルで再作成できますか? – jlbriggs

+0

'document.getElementById(" selectpoint ")。value'には何がありますか?それは適切な形式ですか? Btw、 '#pointchange'コールバックに' chart.redraw() 'がありません。 –

+0

あなたの人のためのthx – Believewsw

答えて

2

私はなぜそれが起こっているかわからないが、私は

:-)回避策とそれで考えられる理由を発見した私は、あなたがp[len].update({...})を呼び出すときと仮定xyの値を指定しないと、これらの値は失われます。したがって、chart.series[0].updateに電話をしているときは、ポイント自体が消去されます。私が不思議に思うのは、ポイントがシリーズの更新後にのみ消去され、新しいマーカーを設定した後ではなくなる点です。たぶんhighchartsには、シリーズが更新されたときに再構築するだけのキャッシュがあります。

あなたの問題のための簡単な修正は、ポイントを更新するときに手動で古い値にxとyプロパティを設定することです:

p[len].update({ 
    x: p[len].x, 
    y: p[len].y, 
    marker: { 
    symbol: document.getElementById("selectpoint").value 
    } 
}, false); 

が働い例えばhttp://jsfiddle.net/doc_snyder/2wwzgz0p/1/を参照してください。 xとyの値が設定されている行を削除すると、経験と同じように色を設定した後に行が消えます。

+0

おかげで多くの男、問題解決 – Believewsw

+0

それはあなたの問題を解決した答えを受け入れることが一般的な習慣です:-) –