Кто-нибудь знает хороший способ кэширования коллекции объектов, возвращаемых селектором.jQuery Collection Cache
var $platforms = $(".platforms");
var i = 0, l = $platforms.length, current;
for(;i<l;i++) {
current = $($platforms[i]); //calling jQuery() in a loop. Should be cached
}
Приведенный выше код создает экземпляр Jquery каждого элемента, возвращаемого $(".platform")
, когда он должен быть в кэше. Есть ли простой способ сделать это?
Очень хорошая точка. Хотя '$ (this)' все еще вызывает функцию jQuery и в моем случае (игру), что означает много вызовов функций, которые не нужны. Вам нужно найти 'position()' для каждого. Мое текущее решение - проверить его при загрузке, затем кешировать значения в массиве, но было интересно, существует ли хорошее решение. – Louis
@Louis - вы можете сохранить массив обернутой jQuery версии элементов, если вы повторяете цикл таким образом, например: 'var $ platform = $ (". Platform "). Map (function() {return $ (this);}). get(); 'тогда вы можете сделать' $ platform [i] ', и это будет обертка jQuery. –
Ницца, мне это нравится! Не могли бы вы добавить его в ответ, чтобы я мог принять его. – Louis