Я просто изучаю так, вероятно, код не самый лучший. Я попробовал несколько примеров в других ответах, но я застрял здесь.Javascript stopPropagation
Function invisibleDiv(){
var invDiv = document.createElement('div');
var secondDiv = document.createElement('div');
secondDiv.setAttribute('class', 'secondDiv');
document.body.appendChild(invDiv);
invDiv.appendChild(secondDiv);
};
И у меня есть этот JQuery код:
$(document).on("click", ".secondDiv", function (e){
e.stopPropagation();
});
Все, что работает, но я пытаюсь заменить все свои функции JQuery с чистым JavaScript, поэтому я попытался это:
document.addEventListener("DOMContentLoaded", function(event) {
var secondDiv = document.querySelector('.secondDiv').
div.addEventListener('click', function(e) {
e.stopPropagation; // Not working
secondDiv.stopPropagation; // Not working
}
});
Я попытался добавить прослушиватель событий в функцию invisibleDiv, и я вижу, что в DevTools событие подключено, но при нажатии secondDiv все еще запускает событие в invisibleDiv.
Я могу заставить его работать, добавляя оба divs в html-код с Display: none/block, но поскольку он работает с jQuery при динамическом добавлении, я хочу знать, что я делаю неправильно.
Чтобы сказать, что вы делаете неправильно, вам нужно объяснить, что вам нужно сделать в первую очередь. Что вы хотите выразить с помощью 'secondDiv.stopPropagation'? – zerkms
Я добавляю прозрачный div к телу с размером и размером 100%, а другой - к прозрачному div. Таким образом, вы можете выбирать опции во втором div и при нажатии за пределами второго div он вызывает событие в прозрачном div, которое удаляет оба divs. Но при нажатии опции во втором div он распространяется на прозрачный div и удаляет оба divs. Он работает с JQuery. –