Давайте посмотрим на действительный код.Ниже приведен фрагмент, он расположен в строке 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
!!