2013-05-29 23 views

答えて

12

あなたはプロットがチャートロードイベントで描画された後、クレジットがハンドラをクリックして再定義することができます:

chart: { 
     events:{ 
      load: function() { 
       this.credits.element.onclick = function() { 
        window.open(
         'http://www.example.com', 
         '_blank' 
        ); 
       } 
      } 
     }     
    }, 

フィドルhereを。 Highcharts設定(対象とクレジット区間)新しいリンク要素がその場で作成され、あなたが「クレジット」をクリックすると、クリックされたを使用して

2

http://jsfiddle.net/ptasdfmk/

// Plugin to add support for credits.target in Highcharts. 
Highcharts.wrap(Highcharts.Chart.prototype, 'showCredits', function (proceed, credits) { 
    proceed.call(this, credits); 

    if (credits.enabled && this.credits) { 
     this.credits.element.onclick = function() { 

      // dynamically create an anchor element and click it 
      // use the settings defined in highcharts (credits.target) 

      var link = document.createElement('a'); 
      link.href = credits.href; 
      link.target = credits.target; 
      link.click(); 

     } 
    } 
}); 

$('#container').highcharts({ 

    credits: { 
     enabled: true, 
     text: 'CREDITS', 
     href: 'http://example.com', 
     target: '_blank' 
    }, 

}); 

。チェインイベント。これにより、コードを再利用し、構成に基づいて動作させることができます。

+0

この「プラグイン」は、すべてのタグhrefとターゲット属性を変更します – thecotne

+0

ありがとうございます。私は '$( 'a')セレクタを間違って使いました - 基本的には、「飛行中にリンクを作成してトリガする」方法を表現したかったのです。私の答えが修正されました。 –

1

ここは私にとってうまくいく解決策です。

credits: { 
    enabled: true, 
    text: 'text', 
    href: 'javascript:window.open("http://www.example.com/", "_blank")' 
}, 
関連する問題