Почему в конечном итоге предлагает $$ (это), чтобы сохранить состояние? - PullRequest
2 голосов
/ 03 ноября 2011

Как объяснено здесь , для сохранения состояния, которое должно быть доступно в различных событиях, рекомендуется $$(this), например:

$$(this).filters = "myvalue";

Что означает этот синтаксис? Почему $$ (двойной доллар)? Почему this? Почему () (скобки)?

Этот код все равно не работает для меня. Я должен использовать что-то вроде:

$.filters = "myvalue";

Я хотел бы понять, почему работает вторая форма, а первая - нет.

1 Ответ

1 голос
/ 09 ноября 2011

Просто проверьте исходный код Eventlly, $$ - это просто сокращение для метода data в jQuery:

function $$(node) {
  var data = $(node).data("$$");
  if (data) {
    return data;
  } else {
    data = {};
    $(node).data("$$", data);
    return data;
  }
};

, так что в двух словах - он вызывает data в любом случае, который jQuery возвращает дляВаш аргумент: если нет прикрепленных данных, он создает пустой объект, используйте его как новый data и возвращает его.

$.filters = "myvalue"

Это работает путем присвоения значения глобальному объекту jQuery, тогда как $$ присоединяетваши данные для объекта представлены запросом.

...