Привязки селектора jQuery в вашем скрипте связываются при загрузке вашего javascript. В вашем коде при загрузке javascript он ищет элемент с идентификатором '#imgDel', которого пока нет в DOM. (он появляется в DOM только после появления подсказки)
Из-за этого привязка к вашему обработчику кликов никогда не выполняется, поскольку элемент, к которому он пытается привязать его, не найден.
Делать что-то вроде:
$(document).on("click", "#imgDel", function(e){
alert("clicked !")
});
- это работоспособное решение. Вы также можете попробовать использовать всплывающие события всплывающей подсказки, указанные в документации к подсказке начальной загрузки.
$('#avatar').tooltip({title: "<p>Update image or <button class='btn btn-sm btn-outline-secondary' id='imgDel'>Delete</button></p>", html: true, placement: "bottom", delay: {show: 0, hide: 2000}});
$('#avatar').on('shown.bs.tooltip', function(){
$('#imgDel').click(function(){
alert('delete option!');
});
// You can now insert any selectors or bindings related to your tooltip and its elements since
// at this point your tooltip and its elements have been rendered into your DOM
});
Это, в основном, запускает функцию после того, как событие «show.bs.tooltip» запускается для вашего элемента, которое запускается после того, как отображается ваша подсказка (есть еще одна для после того, как ваша подсказка скрыта). События, вызванные всплывающей подсказкой (для элемента, к которому вы прикрепляете всплывающую подсказку), можно найти в документации к подсказке начальной загрузки: https://getbootstrap.com/docs/4.1/components/tooltips/