为了账号安全,请及时绑定邮箱和手机立即绑定

想问一下,把自定义的v和$aaron变量放到外面,结果执行的都是让第二个字变颜色,谁能来解释一下。。

  回答一下这个问题哈,因为你把参数放到函数外面的时候,参数就变成了全局变量,当你第一次执行的时候,全局变量的值变为1,底下的if判断生效,颜色变为2.这时候函数就结束了。。。不在执行了。就是那个else  if 不执行了,函数已经结束了,并不是两次都是蓝色。 当你点击click的时候,会判断上面的 的全局变量的值,已经是1了。所以。而放在函数内的话,你每点击一次click,都会重新获取val来进行判断,。懂了吗?

正在回答

3 回答

不看文字太乱,没个排版。

直接上代码!

1 回复 有任何疑惑可以回复我~

get()是从0开始的 get(1)就是第二个 所以2就变了颜色

0 回复 有任何疑惑可以回复我~

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;如果这样就是在语句内部有定义了一个变量   希望能帮到你!

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

想问一下,把自定义的v和$aaron变量放到外面,结果执行的都是让第二个字变颜色,谁能来解释一下。。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信