Вычисление переменных из переменных из идентификаторов - PullRequest
0 голосов
/ 18 октября 2011

Следующий код, помещенный в document.ready (), находит каждый div .scrollable и создает переменную, присваивая каждой панели идентификатор и активируя скрипт прокрутки.

var orderit = 0;
var scrolls = {};
$('.scrollable').each(function(){
    this.id = 'scrollp' + (++orderit);
    scrolls[ 'myScroll' + this.id ] = new iScroll( this.id, { scrollbarClass: 'myScrollbar' });
});

Проблема в том, что позже мне нужно обновить эти переменные, вызвав метод .refresh(), встроенный в скрипт. Для этого нам нужно имя переменной. Один из способов получить переменную - вычислить ее настройку следующим образом.

$('.dircore').click(function(){
    'myScroll' + $(this).attr('id').refresh();
}

Это работает в Firefox, только если firebug говорит, что это ошибка, но он не работает в других браузерах и явно не является правильным способом сделать это.

Я надеюсь, что здесь достаточно информации для работы, но, по сути, нам нужно использовать идентификатор элемента, который мы хотим обновить, чтобы обработать его переменную, и, следовательно, вызвать метод .refresh() для этой переменной.

1 Ответ

0 голосов
/ 18 октября 2011

Разве вы не можете использовать функцию jQuery .data (), чтобы связать данные с элементом и вызвать их позже?Таким образом, вы также защищены от циклических ссылок и утечек памяти, вызванных ими.

Примерно так:

$ (document) .ready (function () {$ ('#)scroll5 '). data (' data ', value);});

А затем:

$ ('. dircore '). each (function (){$ (this) .data ('data'). refresh ();});

или что-то в этом роде.

...