我就叫李二毛
2017-01-13 00:05
回答一下这个问题哈,因为你把参数放到函数外面的时候,参数就变成了全局变量,当你第一次执行的时候,全局变量的值变为1,底下的if判断生效,颜色变为2.这时候函数就结束了。。。不在执行了。就是那个else if 不执行了,函数已经结束了,并不是两次都是蓝色。 当你点击click的时候,会判断上面的 的全局变量的值,已经是1了。所以。而放在函数内的话,你每点击一次click,都会重新获取val来进行判断,。懂了吗?
不看文字太乱,没个排版。
直接上代码!
get()是从0开始的 get(1)就是第二个 所以2就变了颜色
var v = $("#animation").val();
var $aaron = $("#aaron a");
$("#exec").click(function() {
//通过get找到第二个a元素,并修改蓝色字体
if (v == "1") {
$aaron.get(1).style.color = "blue"
v = 2
} else if (v == "2") {
//通过get找到最后一个a元素,并修改字体颜色
$aaron.get(-1).style.color = "#8A2BE2"
v = 1
}
});
如果放到外面就是全局变量了。在执行完了v = 1了不会到else if里了 如果想让执行else if就要去在每个语句执行完后给v重新赋值 但是切记是重新赋值 而不是从新定义一个 例如 v = 2;就合适 不能var v = 2;如果这样就是在语句内部有定义了一个变量 希望能帮到你!
jQuery基础(四)—动画篇
85049 学习 · 262 问题
相似问题