У меня есть кнопка, которая запускает поповер. Он генерируется другим скриптом.
$('#appendTarget').append('<div class="col-md-3" style="border: 2px solid grey; border-radius: 12px; padding: 5px; margin-bottom: 10px;">' + item.name +
'</div>' +
'<div class="col-md-3"><button class="btn" style="margin-bottom: 10px" onclick="showPopover(this)"><b style="color: red"><img src="Img/gear.png" style="width: 20px; height: 20px"></b></button>');
Это моя функция для запуска:
function showPopover(element) {
$(element).popover({
html: true,
content: function() {
$('#popover-content').append('<a href="#" class="btn btn-secondary">Edit</a>'
+'<a href="#" class="btn btn-info">Activate</a>'
+'<a href="#" class="btn btn-danger">Delete</a>');
}
});
}
И popover-content
это:
<ul id="popover-content" class="list-group" style="display: none">
</ul>
Но это не работает. Однако, если я добавлю эти ссылки прямо в <ul>
, это сработает. Но я хочу добавить его динамически, чтобы назначить идентификатор каждой ссылке (кнопке).
Кто-нибудь? Почему в этом случае append не работает?
EDIT
@ Арекс отметил, что состояние display:none
не меняется. Я изменил свою функцию, и это выглядит так:
function showPopover(element) {
$(element).popover({
html: true,
content: function() {
var popover = $('#popover-content');
popover.show();
popover = popover.append('<a href="#" class="btn btn-secondary">Edit</a>'
+'<a href="#" class="btn btn-info">Activate</a>'
+'<a href="#" class="btn btn-danger">Delete</a>');
return popover;
}
});
}
И это работает, но очень странно ...
Когда я нажимаю в первый раз, все выглядит нормально:
После этого, когда я пытаюсь закрыть этот поповер, он расширяет (удваивает) содержимое:
И, наконец, когда я пытаюсь открыть его снова, он показывает пустой поповер: /
РЕДАКТИРОВАТЬ 2
Я добавил popover.empty()
, и это работает .. Но когда я открываю и закрываю popover 2-3 раза, он становится пустым. Это начинает раздражать -.-