Как добавить обработчик событий JS в Prototype? - PullRequest
1 голос
/ 10 июня 2010

Я хотел бы добавить слушатель / обработчик событий, который будет добавлен перед существующим обработчиком событий в Prototype.Вот пример:

<form ... onsubmit="alert('foo')" id="f1">
   $('f1').observe("submit", function() {
     alert('do this before foo');
   });
</form>

1 Ответ

0 голосов
/ 06 января 2011
Observer = Class.create({
 initialize: function() {
  this.callbacks = [];
 },
 prependCallback = function(callback) {
  this.callbacks.unshift(callback);
 },
 appendCallback = function(callback) {
  this.callbacks.push(callback);
 },
 runCallbacks = function() {
  this.callbacks.each(
   function(callback) {
    callback();
   }
  );
 }
});

bunchOfCallbacks = new Observer();
bunchOfCallbacks.appendCallback(function(){alert('second');});
$('anything').observe('anyEvent', bunchOfCallbacks.runCallbacks);
bunchOfCallbacks.prependCallback(function(){alert('first');});
...