Ответ 1
Для Bootstrap 3 события теперь заменены именами, поэтому для <модa > мода show
будет show.bs.modal
...
$('#myModal').on('show.bs.modal', function (e) {
alert('modal show');
});
Демо: http://bootply.com/90952
Немного смущает об увольнении функции обратного вызова в javascript-модале bootstrap3. В обычном jquery.post
вы можете сделать это,
$.post('path', { something: something }, function(data) {
console.log(data);
});
Но в bootstrap 3 modal я запускаю modal через script, и я делаю это, как эта база, о том, как я понимаю объяснение на своем веб-сайте.
$('selector').modal('show', function() {
//here comes the problem, I have a button in the modal in the html, my code
//if the button was clicked inside this modal is..
$('#myButton').on('click', function() {
console.log("this is a try");
});
});
Но грустно сказать, что если я нажму кнопку, ничего не происходит, ничего не было зарегистрировано на консоли. Как вызвать функцию обратного вызова в модальном бутстрапе 3?
Для Bootstrap 3 события теперь заменены именами, поэтому для <модa > мода show
будет show.bs.modal
...
$('#myModal').on('show.bs.modal', function (e) {
alert('modal show');
});
Демо: http://bootply.com/90952
Немного добавить для первого ответа, потому что, когда срабатывает обратный вызов, DOM внутри модала еще не полностью загружен, возможно, придется немного взломать здесь, чтобы немного приостановить действие после обратного вызова. Надеюсь, это поможет!
$('#myModal').on('show.bs.modal', function (e) {
setTimeout(function(){
// something here
}, 300);
});
@Skelly является правильным, вы можете использовать событие show.bs.modal
следующим образом:
$('#myModal').on('show.bs.modal', function (e) {
alert('modal show');
});
В официальной документации говорится:
Это событие срабатывает сразу же после вызова метода show instance.
Обратите внимание, что это событие запускается "довольно скоро", и вам может потребоваться вместо этого использовать shown.bs.modal
.
Документация об этом событии:
Это событие запускается, когда модальное изображение становится видимым для пользователя (будет ждать завершения CSS-переходов).
Это влияет на ответ @Keith yeoh, и вы должны избегать тайм-аутов, когда это возможно.
Источник: Официальная документация по загрузке
Я думаю, что лучше будет, чтобы использовать "показанный .bs.modal", он становится более опасным, когда модаль уже загружен. Модальные события Bootstrap
$('#myModal').on('shown.bs.modal', function (e) {
alert('modal is allready shown');
});