2014-10-29 152 views
-2

我正在努力将一个元素赋值给一个变量 - 我是否在这里忽略了阴谋?将元素赋值给一个变量

animationupgrades = [{ 
    animation: "height", 
    target: $('#element'), 
    effect: 33, 
    finished: 23 
}]; 

var thisIndex = 0; //as an example 

var aniAttribute = animationupgrades[thisIndex].animation; 
var target = animationupgrades[thisIndex].target; 
var effect = animationupgrades[thisIndex].effect; 
var finished = animationupgrades[thisIndex].finished; 

$(target).on('mouseover', function() { 
    $(this).stop().animate({ 
     aniAttribute : effect 
    },500); 
    console.log("errr"); 
}).on('mouseout', function() { 
    $(this).stop().animate({ 
     aniAttribute : finished 
    },500); 
}); 

编辑:对不起,它实际上是一个对象 - 我错了!为什么所有的降价?

edit2:小提琴! http://jsfiddle.net/28wone62/

+0

你错过了,这是一个错字括号 – 2014-10-29 23:09:33

+0

- 我已经纠正了现在 - 道歉 – 2014-10-29 23:10:38

+0

我没有downvote你,这就是我认为错字 – 2014-10-29 23:12:28

回答

1

对象定义

var aniAttribute = "height"; 
{ aniAttribute : "literal" } 

定义所谓的 “aniAttribute” 不是一个属性的属性称为 “高度”

这里更多钞票溶液。

animationupgrades = [{ 
 
    animation: "height", 
 
    target: $('#element'), 
 
    effect: 33, 
 
    finished: 23 
 
}]; 
 

 
var thisIndex = 0; //as an example 
 

 
var attr = animationupgrades[thisIndex].animation; 
 
var target = animationupgrades[thisIndex].target; 
 
var effect = animationupgrades[thisIndex].effect; 
 
var finished = animationupgrades[thisIndex].finished; 
 

 
$(target).on('mouseover', function() { 
 
    console.log("a", attr, target, effect + "px", finished); 
 
    var obj = {}; 
 
    obj[attr] = effect + "px"; 
 
    $(this).stop().animate(obj, 500); 
 
}).on('mouseout', function() { 
 
    var obj = {}; 
 
    obj[attr] = finished + "px"; 
 
    $(this).stop().animate(obj,500); 
 
});
.red { 
 
    background: red; 
 
    height: 20px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="red" id="element"> 
 
    asdasdasdasd 
 
</div>

+0

对不起!这是一个错字。 – 2014-10-29 23:10:04

+0

啊..只是让我再看看 – 2014-10-29 23:10:43

+0

有没有什么喜悦?这让我疯狂 – 2014-10-29 23:31:53

0

试试这个:

animationupgrades = [ { 
     animation: "height", 
     target: $('#element'), 
     effect: 33, 
     finished: 23 } 
    ]; 
+0

缺失的括号是一个错字 - 我现在纠正了这个错误 – 2014-10-29 23:14:56