Предотвратить прослушивание 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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