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

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

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

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

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

$.filters = "myvalue";

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

1 ответ

Решение

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

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

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

$.filters = "myvalue"

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

Другие вопросы по тегам