单击范围选择器按钮时触发 javascript

Highstock Trigger javascript when range selector button clicked

当我按下以下 fiddle 中的“2Week”按钮时,我将如何获得执行 alert("Don't touch me!")https://jsfiddle.net/610335vt/

编辑 在我找到的fiddle中,有这样一个原型。

$(function () {
            //buttons
            (function (H) {
                //rangeSelector buttons
                var A = H.Chart;
                var options = H.getOptions();
                p = H.extend;
                k = H.merge;
                p(A.prototype, {
                    bindEvents: function (b, c) {
                        if (c.click) {
                            b.on("click", c.click);
                        }
                    }
                });
                //rangeSelector events
                A.prototype.callbacks.push(function (b) {
                    //                 
                    var c = b.rangeSelector.buttons, d = b.options.rangeSelector;
                    if (c && d) {
                        for (var i = 0; i < c.length; i++) {
                            b.bindEvents(c[i], d);
                        }
                    }
                });
            })(Highcharts);

试试这个

rangeSelector: {
                click: function () {
                    alert("test");
                },
                buttons: [{
                    type: 'year',
                    count: 5,
                    text: '5y',
                    click: function () {
                        alert("test");
                    }
                }
}

我在这个 fiddle http://jsfiddle.net/stepday/LSdrX/ 我没有在本地测试过,但是你可以尝试 fiddle

中的示例代码

您可以捕获 setExtremes 事件,检查 e.rangeSelectorButton.text 并找到当前按钮。然后调用自定义操作。

   xAxis: {
     events: {
       setExtremes: function(e) {
        if (e.rangeSelectorButton.text === "2Weeks") {
           alert('a');
         }
       }
     }
   },

示例: