javascript - 将事件添加到 Rickshaw 中的 Series.Toggle

标签 javascript jquery d3.js rickshaw

我想在点击 Rickshaw 中图例中的项目时添加功能。我使用标准代码添加切换功能,我想扩展它来运行我自己的函数:

shelving = new Rickshaw.Graph.Behavior.Series.Toggle( { 
        graph: graph,
        legend: legend
}

有没有办法在这里添加我自己的功能?我还尝试查看和编辑 Rickshaw.Graph.Behavior.Series.Toggle.js 中的代码,但在单击图例中的项目时无法运行任何内容。 (会不会是导入的js文件被缓存了,导致我的编辑不生效?)

最佳答案

当您明确询问要修改哪些源代码时,我在下面突出显示了它。 如果修改源代码,升级到新版本会变得更加困难,扩展/创建自己的版本将是首选方法。

Rickshaw.Graph.Behavior.Series.Toggle.js 'Rickshaw.Graph.Behavior.Series.Toggle.js' 更改以下内容

Rickshaw.Graph.Behavior.Series.Toggle = function(args) {
  ...
  this._addBehavior = function() {
    this.graph.series.forEach( function(s) {
       s.disable = function() {
         if (self.graph.series.length <= 1) {
           throw('only one series left');
         }
         s.disabled = true;
         alert('disabling ' + s.name); //HERE
         self.graph.update();
       };

       s.enable = function() {
         s.disabled = false;
         alert('enabling ' + s.name); //HERE
         self.graph.update();
       };
    } );
  };
  ...
};

关于javascript - 将事件添加到 Rickshaw 中的 Series.Toggle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21863678/

相关文章:

javascript - 如何更换当前的 Angular 转发器

javascript - JQuery 提交后禁用

javascript - 使用 d3.js 将图像插入树状图的叶子中

javascript - "HTTP Streaming"(推送)AJAX 模式的跨浏览器实现

javascript - 每当我尝试使用 useContext Hook 使用分派(dispatch)时,我都会收到 "Uncaught TypeError: dispatch is not a function"

javascript - JSDB 如何从 Javascript 生成 .exe?

android - 在 Cordova 应用程序中播放音频

javascript - 如何使用 jquery 一次交叉淡化一个 div

d3.js - NVD3.js multiChart x轴标签与多条线对齐,但不是多条

javascript - 当鼠标悬停在圆圈上时显示标签