Разница в деталях между jQuery плагином и виджетом - PullRequest
0 голосов
/ 09 июля 2020

Я обнаружил разницу между jQuery плагином и виджетом здесь ссылка . В нем говорится, что «Он отличается от стандартного jQuery плагина двумя важными способами. Во-первых, контекст - это объект, а не элемент DOM. Во-вторых, контекст всегда представляет собой отдельный объект, а не коллекцию».

Мой вопрос: как виджет сохраняет состояния? Вот что это значит под контекстом и одним объектом?

Да После прочтения книг JQuery Пользовательский интерфейс в действии Я получил ответ на свой вопрос.

* «Отличительной чертой виджета является его концепция состояния. Многие плагины jQuery не имеют или не нуждаются в концепции состояния. Рассмотрим следующий плагин jQuery, который заменяет содержимое выбранного элемента случайным числом:

$.fn.randomNumber = function() {
 return this.each( function( index, element ) {
 $( element ).html( Math.random() * 1000 );
 };
};

Этот плагин предназначен для однократного запуска. Плагин не запоминает, какие элементы он изменил или что-либо о них. Сравните это с любым из виджетов пользовательского интерфейса jQuery, например, виджетом диалога, созданным в следующем коде:

<div id="dialog"></div>
<script>
 $( "#dialog" ).dialog({ title: "Hello World" });
</script>

Плагин randomNumber () ничего не знал об элементе, с которым он работал; виджет диалога знает об элементе очень много. Он знает, что это диалог, его название - «Hello World» и т. Д. (Мы рассмотрим, как он запоминает эту информацию позже в этой главе.) Dialog - отличный кандидат на роль виджета, потому что он имеет состояние для человека возраст; вы можете открыть его, закрыть, изменить название, высоту и т. д. И наоборот, плагин randomNumber () не является хорошим кандидатом на виджет, потому что у него нет состояния. Общее правило таково: используйте фабрику виджетов, если вы хотите создать плагин, поддерживающий состояние. *

...