代码之家  ›  专栏  ›  技术社区  ›  jacobq

覆盖默认事件处理程序行为的正确方法是什么(例如单击时切换跟踪可见性)?

  •  1
  • jacobq  · 技术社区  · 8 年前

    我想退出 the default plotly_legendclick behavior (以及其他事件)。我似乎在文档中找不到它,但似乎从Plotly事件处理程序返回一个错误值会满足我的需要(请参见 codepen )。这条路对吗?不 preventDefault stopPropagation 是吗?

    澄清: 理想情况下,我希望得到一个权威的答案,引用文档或来自plotly.js合作者(而不是基于源代码当前行为的推测)。

    2 回复  |  直到 8 年前
        1
  •  1
  •   jacobq    8 年前

    108238 plotly.js

    var clickVal = Events.triggerHandler(gd, 'plotly_legendclick', evtData);
    if(clickVal === false) return;
    
    if(numClicks === 1) {
        legend._clickTimeout = setTimeout(function() {
            handleClick(legendItem, gd, numClicks);
        }, DBLCLICKDELAY);
    }
    else if(numClicks === 2) {
        if(legend._clickTimeout) clearTimeout(legend._clickTimeout);
        gd._legendMouseDownTime = 0;
    
        var dblClickVal = Events.triggerHandler(gd, 'plotly_legenddoubleclick', evtData);
        if(dblClickVal !== false) handleClick(legendItem, gd, numClicks);
    }
    

    plotly_legendclick clickVal

    if(clickVal === false) return;
    
    if(numClicks === 1) {
        legend._clickTimeout = setTimeout(function() {
            handleClick(legendItem, gd, numClicks);
        }, DBLCLICKDELAY);
    }
    

    preventDefault stopPropagation handleClick false

        2
  •  1
  •   jacobq    8 年前