Функции Пространства имен Плагина jQuery

В нашей работе здесь, наше решение для интеграционного тестирования имеет три больших части:

  1. CruiseControl является основой нашей непрерывной методологии интеграции.
  2. Наша конфигурация CruiseControl начинает сборку быстрого теста в течение 3 минут после чьей-либо регистрации к Подрывная деятельность . Тесты, которые происходят здесь, "все все еще компилирует?" и "модульные тесты все все еще передают?". JUnit является, очевидно, крупным помощником в ответе на вторые вопросы.
  3. Каждый час, это начинает большую сборку, которая создает справку онлайн и установщики, которые мы используем на наших различных платформах развертывания. Этот шаг проверяет большие вопросы, у "нас все еще есть развертываемый продукт для каждой из наших целевых платформ?"

конечный результат состоит в том, что большинство людей здесь никогда не волнуется об интеграционном тестировании: это просто происходит. Поблочное тестирование, с другой стороны, является общим приоритетом. JUnit облегчает создавать тесты, хотя хороший тесты будут всегда требовать мысли и время разработки.

8
задан gnarf 22 February 2010 в 21:33
поделиться

3 ответа

Как только вы используете $. Fn.foo.bar () - this указывает на $. Fn.foo , что и следовало ожидать от JavaScript ( this является объектом, для которого вызывается функция.)

Я заметил в плагины из пользовательского интерфейса jQuery (например, sortable), в которых вы вызываете такие функции, как:

$(...).sortable("serialize");
$(...).sortable({options});

Если бы вы делали что-то вроде этого - вы могли бы расширить сам jQuery:

$.foo_plugin = {
  bar: function() {},
  baz: function() {}
}

$.fn.foo = function(opts) {
  if (opts == 'bar') return $.foo_plugin.bar.call(this);
  if (opts == 'baz') return $.foo_plugin.baz.call(this);
}
11
ответ дан 5 December 2019 в 12:11
поделиться

Я знаю, что на это уже был дан ответ, но я создал плагин, который делает именно то, что вы хотите:

http : //code.google.com/p/jquery-plugin-dev/source/browse/trunk/jquery.plugin.js

Я привел небольшой пример ниже, но ознакомьтесь с этим сообщением группы разработчиков jQuery для более подробный пример: http://groups.google.com/group/jquery-dev/browse_thread/thread/664cb89b43ccb92c/72cf730045d4333a?hl=en&q=structure+plugin+authoring#72cf730045d4333a

Это позволяет для создания объекта с любым количеством методов:

var _myPlugin = function() {
    // return the plugin namespace
    return this;
}

_myPlugin.prototype.alertHtml = function() {
    // use this the same way you would with jQuery
    alert($(this).html());
}

$.fn.plugin.add('myPlugin', _myPlugin);

теперь вы можете пойти:

$(someElement).myPlugin().alertHtml();

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

2
ответ дан 5 December 2019 в 12:11
поделиться

Я уверен, что есть много способов снять шкуру с этой кошки. Библиотека пользовательского интерфейса jQuery использует такой шаблон:

// initialize a dialog window from an element:
$('#selector').dialog({});

// call the show method of a dialog:
$('#selector').dialog('show');
1
ответ дан 5 December 2019 в 12:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: