Назначаю события:
win = $('window');
win.on('close' function(e) {
console.log('window close');
return false; // e.stopPropagation();
});
Функция закрыть окно:
function closeWindow() {
var removeWindow = function() {
win.remove();
}
win.on('close', removeWindow);
win.trigger('close');
}
Событие, которое непосредственно закрывает окно назначается здесь, в этой функции, что бы продемонстрировать, что оно назначается последним.
Проблема: removeWindow выполняется несмотря на return false и e.stopPropagation().
П. С.
Будет даже лучше, если это будет выглядеть как-то так:
function closeWindow() {
if (win.trigger('close')) {
win.remove();
}
}