想問一下,把自定義的v和$aaron變量放到外面,結(jié)果執(zhí)行的都是讓第二個字變顏色,誰能來解釋一下。。
? 回答一下這個問題哈,因?yàn)槟惆褏?shù)放到函數(shù)外面的時候,參數(shù)就變成了全局變量,當(dāng)你第一次執(zhí)行的時候,全局變量的值變?yōu)?,底下的if判斷生效,顏色變?yōu)?.這時候函數(shù)就結(jié)束了。。。不在執(zhí)行了。就是那個else ?if 不執(zhí)行了,函數(shù)已經(jīng)結(jié)束了,并不是兩次都是藍(lán)色。 當(dāng)你點(diǎn)擊click的時候,會判斷上面的 的全局變量的值,已經(jīng)是1了。所以。而放在函數(shù)內(nèi)的話,你每點(diǎn)擊一次click,都會重新獲取val來進(jìn)行判斷,。懂了嗎?
2017-01-16
不看文字太亂,沒個排版。
直接上代碼!
2018-03-09
get()是從0開始的 get(1)就是第二個 所以2就變了顏色
2017-09-20
var v = $("#animation").val();
? ? var $aaron = $("#aaron a");
? ? $("#exec").click(function() {
? ? ? ??
? ? ? ? //通過get找到第二個a元素,并修改藍(lán)色字體
? ? ? ? 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
? ? ? ? }
? ? });
如果放到外面就是全局變量了。在執(zhí)行完了v = 1了不會到else if里了 ? 如果想讓執(zhí)行else if就要去在每個語句執(zhí)行完后給v重新賦值 ? 但是切記是重新賦值 ?而不是從新定義一個 ? ?例如 ?v = 2;就合適 ? ?不能var v = 2;如果這樣就是在語句內(nèi)部有定義了一個變量 ? 希望能幫到你!