Написание плагинов jQuery: как настроить обратный вызов для прекращения выполнения плагина при возврате false - PullRequest
0 голосов
/ 15 июля 2010

Я пишу плагин jQuery, который имеет пару обратных вызовов, и сейчас я должен разрешить запуск одного из обратных вызовов. Рассматриваемый обратный вызов - beforeListItemSelect, поэтому, естественно, я бы хотел, чтобы код плагина после обратного вызова не запускался, если функция обратного вызова возвращает false Итак, следующий раздел кода моего плагина:

$listItems.live('click', function() {
    $.isFunction(options.beforeListItemSelect) && options.beforeListItemSelect.call(this);

    // perform select action (apply css, etc)

    $.isFunction(options.afterListItemSelect) && options.afterListItemSelect.call(this);
});

Так что, если я вызываю плагин (myPlugin), и я определил обратный вызов beforeListItemSelect следующим образом:

$('#someDiv').myPlugin({
    beforeListItemSelect: function() {
        return false;
    }
});

Я бы хотел, чтобы плагин завершал работу после обратного вызова beforeListItemSelect. Кто-нибудь имеет представление о том, как я могу настроить плагин, чтобы он не продолжался, если из обратного вызова возвращается false?

Большое спасибо.

1 Ответ

1 голос
/ 15 июля 2010

Меньше синтаксического сахара, и вещи снова становятся легкими:

var result;

if ($.isFunction(options.beforeListItemSelect))
  result = options.beforeListItemSelect.call(this);
}
if (result === false) return;

Конечно, вы все еще можете использовать любой синтаксический сахар, который вам нравится:

$.isFunction(options.beforeListItemSelect) && result = options.beforeListItemSelect.call(this);

, но это невносить вклад в удобочитаемость кода или улучшать что-либо.Это просто ... возможно.Однако не все, что возможно, должно быть сделано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...