2013-04-04 1 views
0

그래서 하이 차트 데이터와 함께 고화질을 사용할 때 새로운 데이터 포인트를 계속 클릭하고 끝없는 수의 모달 창 팝업. 새로운 highslide를 열거 나 화면이나 필터에서 아무 곳이나 클릭하면 기존의 highslide 팝업 창을 닫을 수있는 무언가를 만들고 싶었습니다.Highcharts + Highslide : 새로운 highslide 팝업을 열거 나 다른 곳을 클릭하면 이전에 열린 팝업을 닫습니다.

이 작은 기능을 작성하여 시작 문장에 추가했지만 작동하지 않았습니다. 질문은 , 누군가가 나에게 내가 위에서 설명한 동작을 수행 할 수 있습니다 예를 표시 할 수 있습니다 :

<body onclick="javascript:parent.window.hs.close();"> 

그리고 여기 내 전체 예제입니다? allowMultipleInstancesfalse로 설정되어있는 경우

$(function() { 
     $('#container').highcharts({ 
      chart: { 
       type: 'scatter', 
       zoomType: 'xy' 
      }, 
      title: { 
       text: 'Q1 Eanings and Outlook Forecast', 
       x: -100 
      }, 
      subtitle: { 
       text: 'professional', 
       x:-100 
      }, 
      xAxis: { 
       title: { 
        enabled: false, 
        text: 'Future Outlook' 
       }, 
       labels:{formatter: function() {} }, 
       startOnTick: true, 
       endOnTick: true, 
       showLastLabel: true 
      }, 
      yAxis: { 
       title: { 
        enabled:false, 
        text: 'Current Quarter' 
       }, 
        labels: { 
     formatter: function() { 
      //return this.value + ' '; 
     } 
    }, 

      }, 
      legend: { 
       layout: 'vertical', 
       align: 'right', 
       verticalAlign: 'top', 
      //  x: 100, 
       y: 70, 
       floating: false, 
       backgroundColor: '#FFFFFF', 
       borderWidth: 1 
      },    

         load: function() { 
       var legend = $('#container .highcharts-legend'); 
       var x = legend.position().left; 
       var y = legend.position().top - (this.chartHeight - this.plotTop - this.plotHeight - this.options.chart.spacingBottom); 

       legend.attr({ 
        transform: 'translate(' + x + ',' + y + ')' 
       }); 
      }, 

      plotOptions: { 
       scatter: { 
        marker: { 
         radius: 5, 
         states: { 
          hover: { 
           enabled: true, 
           lineColor: 'rgb(100,100,100)' 
          } 
         } 
        }, 
        states: { 
         hover: { 
          marker: { 
           enabled: true 
          } 
         } 
        }, 
        tooltip: { 
         headerFormat: '<b>{series.name}:</b><br>', 
         pointFormat: '{point.hover}<br><br><b>Current Q: </b>{point.y}/100<br><b>Outlook: </b>{point.x}/100<br><br><div style="text-align:center;">(click for more detail)</div>' 
        }, 



    cursor: 'pointer', 
      point: { 
       events: { 
         click: function(event) { 
          hs.htmlExpand(null, { 
           pageOrigin: { 
            x: this.pageX, 
            y: this.pageY 
           }, 
           headingText: this.ticker, 
           maincontentText: '<b>Detail:</b> ' + this.info, 
           width: 250 
          }); 


           hs.Expander.prototype.onBeforeClose = function(sender) { 

}     


         }, 



       } 
      }, 

         events: { 
       legendItemClick: function(event) { 

        if (!this.visible) 
         return true; 

        var seriesIndex = this.index; 
        var series = this.chart.series; 
        for (var i = 0; i < series.length; i++) 
        { 
         if (series[i].index != seriesIndex) 
         { 
          series[i].visible ? series[i].hide() : series[i].show(); 
         } 
        } 


        return false; 
       } 


      }, 






       } 
      }, 





        series: [{ 
        name: 'Weak Outlook (24)',color: 'red',data: [ 
      {x: 40,y:10,ticker:'Michael Kors: (KORS)',info: 'O,.pyjxkne<br>1Q xjkxqs', hover:'Gtext<br>1Qlotatt<br><a href="">read more</a>'}, 
      {x: 20,y:50,ticker:'Soeuoeuoeu',info:'Doeuoeuoeull...<br><br><a href="">read more</a>'}, 
      {x:0,y:0,ticker:'Zynga: (ZNGA)'}, 
      {x:3,y:4,ticker:'Avid: (AVID)'}, 
      {x:30,y:10,ticker:'JCPenny: (JCP)'}, 
      {x:29,y:25,ticker:'Deckers Outdoor: (DECK)'}, 
      {x:25,y:5,ticker:'Zynga: (ZNGA)'}, 
      {x:6,y:34,ticker:'Avid: (AVID)'}, 
      {x:8,y:27,ticker:'JCPenny: (JCP)'}, 
      {x:14,y:35,ticker:'Deckers Outdoor: (DECK)'}, 
      {x:35,y:23,ticker:'Nutrisystem Corp: (NTRI)'}, 
      ]}, 



      {name:'Strong Outlook (25)',color:'green',data:[ 
     {x:100,y:100,ticker:'The Gap: (GPS)'}, 
     {x:72,y:82,ticker:'Sodastream Intl: (SODA)'}, 
     {x:82,y:74,ticker:'Under Armour: (UA)'}, 
     {x:71,y:90,ticker:'Intuitive Surgical: (ISRG)'}, 
     {x:88,y:69,ticker:'McDonalds: (MCD)'}, 
     {x:95,y:87,ticker:'Lumber Liquidators: (LL)'}, 
     {x:77,y:91,ticker:'Apple: (AAPL)'}, 
     {x:96,y:78,ticker:'Walgreen Company: (WAG)'},  {x:100,y:100,ticker:'The Gap: (GPS)'}, 
     {x:73,y:72,ticker:'Sodastream Intl: (SODA)'}, 
     {x:84,y:74,ticker:'Under Armour: (UA)'}, 
     {x:91,y:80,ticker:'Intuitive Surgical: (ISRG)'}, 
     {x:68,y:93,ticker:'McDonalds: (MCD)'}, 
     {x:95,y:67,ticker:'Lumber Liquidators: (LL)'}, 
     {x:76,y:67,ticker:'Apple: (AAPL)'}, 
     {x:79,y:84,ticker:'Walgreen Company: (WAG)'}, 

     ]}, 


     {name:'Inline Company Performance (23)',color:'darkgrey',data:[ 
     {x:40,y:44,ticker:'GIII'}, 
     {x:53,y:43,ticker:'BNNY'}, 
     {x:55,y:49,ticker:'SNE'}, 
     {x:57,y:58,ticker:'WTW'}, 
     {x:60,y:60,ticker:'LULU'}, 
     {x:70,y:66,ticker:'FB'}, 
     {x:51,y:24,ticker:'GIII'}, 
     {x:45,y:26,ticker:'FB'}, 
     {x:43,y:53,ticker:'BNNY'}, 
     {x:47,y:59,ticker:'SNE'}, 
     {x:51,y:48,ticker:'WTW'}, 
     {x:56,y:40,ticker:'LULU'}, 
     {x:59,y:52,ticker:'FB'}, 
     {x:0,y:100,ticker:'Nutrisystem Corp: (NTRI)'}, 
     ]}, 




     ] 



     }); 
    }); 

답변

1

, 당신은 다른 열을 클릭하면 확장기가 종료됩니다 열었습니다. 포함 된 highslide.config.js 파일 바로 다음에이 파일을 추가하십시오.

<script type="text/javascript"> 
    hs.allowMultipleInstances = false; 
</script>