Предотвратить прослушивание OnClick и Event Sulderers, находясь в режиме выбора элементаJavascript

Форум по Javascript
Anonymous
Предотвратить прослушивание OnClick и Event Sulderers, находясь в режиме выбора элемента

Сообщение Anonymous »

Я строю инструмент селектора элементов в JavaScript, который позволяет пользователям нажимать и выбирать элементы на странице. Тем не менее, я сталкиваюсь с проблемой, в которой исходные события щелчка по элементам все еще стреляют даже в режиме выбора.
Вот моя текущая реализация: < /p>

Код: Выделить всё

class ElementSelector {
constructor() {
this.selectorModeEnabled = false;
this.selectedElement = null;
this.selectElement = this.selectElement.bind(this);
this.onSelectElement = (element) => {};
}

enableSelectorMode() {
this.selectorModeEnabled = true;
document.body.style.cursor = "crosshair";
document.body.addEventListener("click", this.selectElement);
}

disableSelectorMode() {
this.selectorModeEnabled = false;
document.body.style.cursor = "default";
document.body.removeEventListener("click", this.selectElement);
}

selectElement(event) {
event.preventDefault();
event.stopPropagation();
const element = event.target;
this.selectedElement = element;
this.onSelectElement(element);
}
}
< /code>
Когда я нажимаю кнопку, как это в режиме выбора: < /p>
Click
console.log по -прежнему запускается, даже если я использую Event.preventDefault () и event.stoppropagation () . Я даже пробовал event.stopimmediatePropagation () < /code>, но исходные обработчики кликов все еще выполняют. Режим выбора, нажатие на элемент должен запустить только мою логику выбора, а не существующие обработчики. addEventListener) по -прежнему стреляйте даже с Event.PreventDefault () и StopPropagation ().
Любая помощь будет оценена! < /p>

Подробнее здесь: https://stackoverflow.com/questions/794 ... ction-mode

Вернуться в «Javascript»