问题是我想通过使用其他变量的值
调用变量来缩短我的代码长期工作版:
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的id,然后使用switch
检查它是否与变量之一匹配我想要获得的是这样的:
var russia = new Array('15')
var switzerland = new Array('5')
$('.country').mouseover(function(){
active_country_lift(this.id,this.id[0])
})
当然上面的代码不起作用,但有一个解决方法吗?
更新:Arun的回答很有效,很快就接受了,并且对于要求完整代码的评论,在我应用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)
}
}
它将用于世界地图,随时提出任何使其更具动态的建议
答案 0 :(得分:4)
您可以将国家/地区信息存储在关键值对等对象中,然后使用bracket notation动态访问它
var countries = {
russia: new Array('-15px'),
switzerland: new Array('-5px')
}
$('.country').mouseover(function() {
active_country_lift(this.id, countries[this.id][0])
})
如果您没有多个值,那么
var countries = {
russia: '-15px',
switzerland: '-5px'
}
$('.country').mouseover(function() {
active_country_lift(this.id, countries[this.id])
})
答案 1 :(得分:0)
尝试使用eval()
函数
var russia = new Array('-15px')
var switzerland = new Array('-5px')
$('.country').mouseover(function(){
active_country_lift(this.id,eval(this.id)[0])
})