У меня возникают проблемы при подключении слушателя событий к внуку.
Как родительский, так и дочерний щелчки работают как положено, щелчки только внуков не будут срабатывать.
Вот мой текущий код:
/* Parent */
$('body').on('click', 'div.left-menu-item', function (e) {
e.preventDefault();
console.log('parent'); // <-- this works
});
/* Child */
$('body').on('click', 'div.left-menu-item div.dropdown', function(e){
e.stopPropagation();
e.stopImmediatePropagation();
console.log('child'); // <-- this works
});
/* Grandchild */
$('body').on('click', 'div.left-menu-item div.dropdown-menu.show a.edit', function(e){
e.stopPropagation();
e.stopImmediatePropagation();
console.log('grandchild'); // <-- this does NOT work
});
Разметка для кнопки, в которой возникла проблема:
<a class="btn edit" data-unsp-sanitized="clean">
<i class="fas fa-fw fa-pen"></i> <span>Edit</span>
</a>
Я также попытался установить для списка событий внука:
$('body').on('click', 'a.edit', function(e){
console.log('grandchild'); <-- this doesnt work either
});
Новое обновление.
Я добавил прослушиватель кликов с подстановочным знаком, чтобы я мог прослушивать все клики:
$('body').on('click', '*', function(e){
console.log('clicked');
});
В общей сложности 20 нажатий, но когда я нажимаю на .edit, щелчки по-прежнему не обнаруживаются.
Если я запускаю клик вручную $('.edit').trigger('click');
, это работает ..