2013-12-05 4 views
2

У кого-нибудь есть опыт работы с niceScroll ... Я пытаюсь оптимизировать код, который присваивает скроллеры соответствующим элементам и прикрепляет их свойства. Это работает только на первом объект в массиве ($ ele1):Нажатие параметров объекта через jQuery .each()

var obj = { 
    cursorwidth: 6, 
    railoffset: {top:0,left:20} 
}; 

var eleArray = [$ele1, $ele2]; 

$(eleArray).each(function() { 

    $(this).niceScroll(obj); 

}); 

, но это нормально для всех объектов в массиве:

var eleArray = [$ele1, $ele2]; 

$(eleArray).each(function() { 

    $(this).niceScroll({ 
    cursorwidth: 6, 
    railoffset: {top:0,left:20} 
    }); 

}); 

Любой способ иметь эти свойства обтекаемых от внешнего источника var, где будут обрабатываться все объекты из массива?

ответ

1

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

http://jsfiddle.net/46TLb/

Проверка на консоль. Вы передаете это:

{"cursorwidth":6,"railoffset":{"top":0,"left":20}} 

И это добавляет и превращает его в нечто подобное:

{"cursorwidth":6,"railoffset":{"top":0,"left":20},"doc":{"0":{"jQuery110107344591654536623":7},"context":{"jQuery110107344591654536623":7},"length":1}} 

Так что ответ: вы не можете использовать тот же экземпляр проходных параметров в niceScroll потому что он меняет его для собственного удобства. И, действительно, это была не большая оптимизация. Если вам нужно оптимизировать, вы можете попытаться заменить Jquery каждой функции со встроенным JavaScript для петель:

var eleArray = [$ele1, $ele2]; 

for (var i = 0; i < eleArray.length; ++i) { 

    eleArray[i].niceScroll({ 
    cursorwidth: 6, 
    railoffset: {top:0,left:20} 
    }); 

} 

Прочитайте это для получения дополнительной информации по оптимизации с JQuery: http://net.tutsplus.com/tutorials/javascript-ajax/10-ways-to-instantly-increase-your-jquery-performance/

+0

Понял. Хороший ресурс тоже. благодаря – user3024007

Смежные вопросы