Javascript прототип обратного вызова - PullRequest
0 голосов
/ 12 июня 2011

Я видел этот потрясающий пост Джона Резига о "Простом классе": http://ejohn.org/blog/simple-class-instantiation/

Итак, я начал создавать сценарии таким образом, но, к сожалению, это вызвало некоторые проблемы и путаницу.

Я работаю над некой «настраиваемой диалоговой структурой», где должна быть возможность просматривать только один диалог за раз, а если вы отклоните один, появится следующий. Давайте назовем это очередь диалогов .

Во-вторых, он должен запустить продолжить или отменить в зависимости от того, что выберет пользователь. Таким образом, мы могли бы использовать это так:

var dialog = UIDialog();
dialog.proceed(function() {
    // Do stuff
});
dialog.cancel(function() {
    // Do stuff
});

У меня сейчас есть этот код: http://pastebin.com/sGyjArfA Прямо сейчас кажется, что очередь диалогов работает, но я совершенно заблудился, как заставить работать функцию обратного вызова.

1 Ответ

1 голос
/ 12 июня 2011

Вам необходимо сохранить обратные вызовы в объекте диалога, а затем просто вызывать их в подходящее время. Например.,

UIDialog.prototype.proceed = function(callback) { this.cbProceed = callback; }

И затем в логике диалога, которая обрабатывает логику продолжения, просто вызовите функцию обратного вызова, если она установлена:

if (this.cbProceed && jQuery.isFunction(this.cbProceed))
  this.cbProceed();
...