У меня проблема с кодом ниже:
for (var i =0; i < filterArray.length; i++)
{
name1 = filterArray[i];
selectstring = 'a[cat="'+name1+'"]';
filterMenuItem.addItem(name1 , function() {$(selectstring).show(); alert(selectstring)});
}
На данный момент filterArray содержит 2 элемента .. "Foo" и "Bar" ..
теперь этот "addItem (name1")работает нормально. Мы получаем добавленный пункт меню с именем Foo и другой с именем Bar
, проблема возникает со следующей частью (функцией).
и функции пунктов меню Foo & Bar заканчиваютсяделать то же самое (например, они оба получают строку выбора 'a [cat = "bar"]' ... как проверено с предупреждением)
Теперь я предполагаю, что это происходит, потому что переменная selectstringпередается по ссылке на функцию? Так, когда я устанавливаю значение selectstring во второй раз, оно переопределяет значение из первого цикла?
Как я могу передать уникальную копию selectstring в селектор?"function (selectstring) {....}", но это не помогло ..
Спасибо всем, кто может пролить свет на эту тему!
РЕДАКТИРОВАТЬ: Пересмотренный код ниже.Еще та же проблема:
for (var i =0; i < filterArray.length; i++)
{
var name1 = filterArray[i];
var selectstring = 'a[cat="'+name1+'"]';
filterMenuItem.addItem(name1 , function() {alert(selectstring); $('.sortablelist').hide(); $(selectstring).show();});
}