, animate = this.$element.hasClass('fade') ? 'fade' : ''
if ( this.isOpen && this.settings.backdrop ) {
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
- .click(function () { that.close() })
.appendTo(document.body)
+ $('body').delegate('.modal-backdrop', 'click.modal.backdrop', function () {
+ that.close()
+ })
} else if ( !this.isOpen && this.$backdrop ) {
this.$backdrop.removeClass('in')
+ $('body').undelegate('click.modal.backdrop')
function removeElement() {
that.$backdrop.remove()
, escape: function () {
var that = this
if ( this.isOpen && this.settings.closeOnEscape ) {
- $(window).bind('keyup.modal.escape', function ( e ) {
+ $('body').bind('keyup.modal.escape', function ( e ) {
if ( e.which == 27 ) {
that.close()
}
})
} else if ( !this.isOpen ) {
- $(window).unbind('keyup.modal.escape')
+ $('body').unbind('keyup.modal.escape')
}
}