проблема я хочу, чтобы сократить свой код, вызывая переменную, используя значение другой переменнойПрисвоить значение переменной в качестве имени переменной
долго рабочая версия:
var russia = new Array('15')
var switzerland = new Array('5')
$('.country').mouseover(function(){
switch(this.id){
case 'russia':
active_country_lift(this.id,russia[0])
break
case 'switzerland':
active_country_lift(this.id,switzerland[0])
break
}
})
он получит идентификатор mouseovered затем проверить если она соответствует одной переменной с помощью переключателя
то, что я хочу, чтобы получить что-то вроде этого:
var russia = new Array('15')
var switzerland = new Array('5')
$('.country').mouseover(function(){
active_country_lift(this.id,this.id[0])
})
Конечно, вышеуказанный код не работает, но есть ли обходной путь для этого?
UPDATE: ответ Arun работал и плохо принять его в ближайшее время, и, как и для комментариев, запрашивающих полный код, вот кусок из него после того, как я применил Аруна
var countries = {
russia: ['-15px'],
switzerland: ['-5px']
}
$('.country_inactive').mouseover(function(){
active_country_lift(this.id, countries[this.id][0])
})
function active_country_lift(country, country_top){
if(!$('#'+country+'_active').hasClass('active')){
$('#'+country+'_active').stop().fadeIn(100).animate({
'top' : country_top
}, 200)
$('#'+country).stop().fadeOut(100)
}
}
он будет использоваться для карты мира, не стесняйтесь делать какие-либо предложения для делая его более динамичным
Pro совет: никогда не используйте 'новый Array' в JS, если вы не объявляете длину из массив. Просто инициализируйте массив, используя '[]'. –
Можете ли вы добавить полный код того, чего вы пытаетесь достичь, это, вероятно, может быть достигнуто только с помощью CSS. – Tushar
Возможный дубликат [Получить глобальную переменную динамически по строке имени в JavaScript] (http://stackoverflow.com/questions/1920867/get-global-variable-dynamically-by-name-string-in-javascript) – 4castle