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

Мне нужен способ найти имя переменной, загруженной в функцию document.ready () ранее.Имя переменной связано внутри идентификатора элемента, который должен вызвать его снова.

Скажем, переменная была var myScrollscroll5, идентификатор элемента, который должен вызвать переменную снова, будет scroll5.Поэтому я надеялся, что это сработает.

'myScroll' + $('.dircore').attr('id').refresh();

Мы не можем просто вызвать переменную, поскольку имя неизвестно и может быть найдено только в id элемента .dircore.

Как ни странно, это работало в Firefox, хотя Firebug сказал, что это ошибка.Не работает в других браузерах.

Ответы [ 3 ]

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

Если бы вы добавили какой-то код, который мог бы быть полезным. Мне кажется, это проблема глобальной или локальной области видимости.Что бы вы ни делали, просто сначала определите переменную в глобальной области и установите значение внутри функции, какой бы метод вы ни использовали для создания экземпляра значения переменной.например,

а).// в глобальной области видимости var myvariable = null;

 //inside function
 $(document).ready(function(){
      myvariable='set_value_here'
  })

Затем доступ к переменной в глобальной или локальной области видимости.

b) другие параметры могут определять переменную как объект

   var myScrollscroll5={value:'value', id:'idof'}

    $('#'+myScrollscroll5.id).refresh() 

cheers:)

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

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

Как это:

$ (документ).ready (function () {$ ('# scroll5'). data ('data', value);});

А затем:

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

или что-то в этом роде.Таким образом, вы также защищены от циклических ссылок и утечек памяти, вызванных ими.

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

Вам нужно eval здесь:

var sVarName = 'myScroll' + $('.dircore').attr('id');
eval(sVarName + ".refresh();");

Хотя eval считается злом, иногда это может быть полезно, но это похоже на один из тех случаев, когда вы не оцениваете ввод пользователя толькособственные внутренние данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...