208 похожих чатов

Подскажите пожалуйста, как правильно остановить "распространение" на вложенные элементы DOM,

обработчика события, или само событие(не знаю если честно) в файле order_ajax.js?

Вот создается элемент:

itemNode = BX.create('DIV', {
props: {className: 'bx-soa-pp-company '},
children: [label, title, injectNode],
events: {click: BX.proxy(this.selectPaySystem, this), function(e) {e.stopPropagation(e);}
}
});

У него задается обработчик selectPaySystem для клика, а далее с помощью e.stopPropagation(e), я пытался отменить дальнейшее распространение на вложенные элементы(input[type=radio]).

Так как по итогу, selectPaySystem "отменяет" дефолтные события на этих input, и они не принимают состояние checked=true

Заранее благодарю

5 ответов

35 просмотров

на вложенные элементы события не распространяются. Всплытие и погружение идёт от цели до document или наоборот. То есть при структуре <div><input></div>, клик по диву никак не повлияет на инпут. Если конечно там нет обработчиков на js, которые воздействуют на вложенные элементы. Но в таком случает перехват события не поможет. Тебе нужно посмотреть по коду метода selectPaySystem, где происходит установка состояния инпута и допилить под свою задачу.

Alexey Nazarov
на вложенные элементы события не распространяются....

Ну и клик по label надо учитывать. Label как раз может изменить состояние вложенного или привязанного инпута

Марат- Автор вопроса
Alexey Nazarov
на вложенные элементы события не распространяются....

Спасибо большое. А если написать свой обработчик для моих инпутов, это же как я понял отменяет любые воздействия других обработчиков?

Марат
Спасибо большое. А если написать свой обработчик д...

Нет не отменяет. Событие заменяется только если добавлено через точку. input.onchange, например. А addEventListener позволяет сколько угодно вешать. Поэтому лучше найти существующий обработчик и поменять под себя.

Марат- Автор вопроса
Alexey Nazarov
Нет не отменяет. Событие заменяется только если д...

Да, нашёл существующий обработчик. В нем по условию устанавливалась preventDefault(). Дописал своё условие, все заработало. Спасибо большое за содействие 🤝

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта