cyklop_77, открою тебе страшную тайну: если используешь жуквери, портянку вида
//- observer
var observerable = {
listeners: {},
addListener: function (object, evt, callback) {
if (!this.listeners.hasOwnProperty(evt)) {
this.listeners[evt] = [];
}
this.listeners[evt].push(object[callback]);
},
removeListener: function (object, evt, callback) {
if (this.listeners.hasOwnProperty(evt)) {
var i, length;
for (i = 0, length = this.listeners[evt].length; i < length; i += 1) {
if (this.listeners[evt][i] === object[callback]) {
this.listeners[evt].splice(i, 1);
}
}
}
},
publisher: function (evt, args) {
if (this.listeners.hasOwnProperty(evt)){
var i, length;
for (i = 0, length = this.listeners[evt].length; i < length; i += 1){
this.listeners[evt][i](args);
}
}
}
};
можно заменить на что-то такое:
/**
* jQuery Simple App
* @author: nerv
* @version: 0.1.1, 2012-10-26
*/
(function( $, window ) {
'use strict';
if ( '$app' in window ) {
return;
}
var slice = Array.prototype.slice;
var observer = $({});
window.$app = {
on: function() {
observer.on.apply( observer, arguments );
return this;
},
off: function() {
observer.off.apply( observer, arguments );
return this;
},
trigger: function() {
observer.trigger( arguments[ 0 ], slice.call( arguments, 1 ) );
return this;
},
ready: function() {
$( arguments[ 0 ] );
return this;
}
};
}( jQuery, window ));
юзать так:
// dom ready
$app.ready(function() {
});
$app.on('event', function() {});
$app.trigger('event', 1, 2, 3);
вечера раскрытия тайн
Только на нашем канале