【问题标题】:Identifying tracked javascript event to the right div将跟踪的 javascript 事件识别到正确的 div
【发布时间】:2016-04-08 13:17:06
【问题描述】:

我正在使用绘图图表并根据图表中的选择触发事件。

https://plot.ly/javascript/zoom-events/

因此,在此示例中,页面上有一个 div,并呈现了一个绘图图表。当我在图表中进行选择时,会触发 plotly_relayout 事件。在这个事件中,我弹出一个显示事件数据的警报。

我的问题是:假设屏幕上有两个 div,myDiv1 和 myDiv2 都包含不同的图表。

当我在一个图表中进行选择时,事件会触发并且警报会显示事件数据。除了事件数据,我还如何添加有关从哪个 div/chart 触发事件的信息?

谢谢, 体式

【问题讨论】:

    标签: javascript plotly


    【解决方案1】:

    不幸的是,此功能并未融入 plotly.js 事件中,您必须自己将其添加到您的点击处理程序中。例如

    var plot1; // let's assume these are the plotly plots for now
    var plot2;
    
    plot1.on('plotly_click', function(e){
        myHandler('plot1', e);
    });
    
    plot2.on('plotly_click', function(e){
        myHandler('plot2', e);
    });
    
    function myHandler(id, e){
        console.log('Click data from ' + id + ':', e); 
    }
    

    【讨论】:

    • 这将解决我的问题。谢谢!还有一件事让我很困扰。假设我的页面有很多图表,我想将一个函数绑定到所有这些图表,我该怎么做?假设每个 div 都有一个类名和一个 id。然后我可以拥有一个函数并使用类名将其绑定到所有 div。但在那种情况下,我又回到了点击哪个 div 的问题。我将如何获得该 div 的 div id?任何示例都会很有帮助。
    • 在您提供的场景中,您仍然可以访问自定义处理程序中的 DOM 元素 - 您可以使用它们的类名选择所有图,然后在您的处理程序中,您可以使用给定元素的 id 但是你需要 - 例如node.id 其中nodedocument.getElementsByClassName('application-graph') 之类的调用返回的节点之一。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多