Мне нужно запустить только одно настраиваемое событие, которое функционирует как событие domready, в том случае, если новые события добавляются после того, как событие произошло, они запускаются немедленно.Эмуляция события domready с настраиваемым событием (mootools)
Это для некоторого кода, который не может выполнять до определенных данных и ресурсов инициализируется, поэтому я хочу сделать что-то вроде этого:
// I am including a script (loadResources.js) to load data and other resources,
// when loadResources.js is done doing it's thing it will fire resourcesAreLoaded with:
window.fireEvent('resourcesAreLoaded');
window.addEvent('resourcesAreLoaded', function() {
// this is fine
});
$('mybutton').addEvent('click', function() {
window.addEvent('resourcesAreLoaded', function() {
// this is not fine, because resourcesAreLoaded has already fired
// by the time the button is clicked
});
});
Если возможно, я хотел бы resourcesAreLoaded
функционировать как domready
, и выполнить код сразу, если событие уже уволили:
window.addEvent('testIsReady', function() {
alert('firing test');
});
window.fireEvent('testIsReady');
window.addEvent('test', function() {
// this will never execute unless I call fireEvent('testIsReady') again
alert('test 2');
});
window.addEvent('domready', function() {
alert('domready is firing');
});
window.addEvent('domready', function() {
setTimeout(function() {
alert('domready has already fired, so this is executed immediately');
}, 500);
});
+1, хороший ответ –
спасибо @Dimitar – Anurag