2015-10-19 2 views
1

Я использую Plotly, пишу веб-страницу. Проблема в том, что когда я использую событие Plotly_onclick, кажется, что-то не так. В частности, когда я нажимаю мышью, он не реагирует. Когда я нажимаю сенсорную панель своего ноутбука, то есть я нажимаю тачпад, он тоже не реагирует. Только когда я сильно касаюсь сенсорной панели, она реагирует. Я не могу справиться с этим. Кто-нибудь знает, как это исправить?Plotly.js Click event

Код события щелчка здесь:

.on('plotly_click', function (event, eventdata) { 

     var point = eventdata.points[0]; 

     var traceColor = point.fullData.marker.color, 
      newAnnotation = { 
       x: point.xaxis.d2l(point.x), 
       y: point.yaxis.d2l(point.y), 
       ax: 0, 
       ay: -50, 
       arrowhead: 6, 
       bgcolor: 'rgba(255,255,255,0.75)', 
       arrowcolor: traceColor, 
       font: {color: traceColor}, 
       text: point.data.name + ':' + point.y + 'on ' + point.x 
      }, 
      newIndex = (rangePlot.layout.annotations || []).length; 
      console.log(newIndex); 

     var TextFromUser = {name: point.data.name, time: point.x, value: point.y}; 

     if(TextFromUser['time'].length==10) 
     { 
      TextFromUser['time']=TextFromUser['time']+' 00:00'; 
     } 
     else if(TextFromUser['time'].length==13) 
     { 
      TextFromUser['time']=TextFromUser['time']+':00'; 
     } 
     else; 



     if (newIndex) { 

      var foundCopy = false; 
      rangePlot.layout.annotations.forEach(function (ann, sameIndex) { 
       if (ann.text === newAnnotation.text) { 
        Plotly.relayout(rangePlot, 'annotations[' + sameIndex + ']', 'remove'); 
        foundCopy = true; 
       } 
      }); 
      if (foundCopy) return; 
     } 

     Plotly.relayout(rangePlot, 'annotations[' + newIndex + ']', newAnnotation); 

    }) 

ответ

0

пример исй: https://plot.ly/javascript/click-events/

код:

Plotly.newPlot('myDiv', data, layout); 

myPlot.on('plotly_click', function(data){ 
    var pts = ''; 
    for(var i=0; i < data.points.length; i++){ 
     pts = 'x = '+data.points[i].x +'\ny = '+ 
      data.points[i].y.toPrecision(4) + '\n\n'; 
    } 
    alert('Closest point clicked:\n\n'+pts); 
}); 

Он имеет несколько лагун, но это начало для событий, чтобы стрелять ...