推 mrbigmouth:在click function最前方加判斷式 只要還有動畫進行中 03/25 10:57
→ mrbigmouth:就return 03/25 10:57
不好意思,我能力不太夠,看不懂。 可以寫個範例嗎?
我目前大概是這樣:
$("#menu").click({
var idx = $(this).index();
$("#info").load("view/"+idx+".html,function({
if( idx == 6 ){
$("#info").after("<img />");
}
}));
})
亂點的話會變得像這樣:
<section id="info">
<div>This is load html</div>
<img />
<img /> <--亂點多出來的tag
</sectino>
※ 編輯: Qiqi 來自: 114.41.106.23 (03/26 19:40)
推 kerash:加個 flag, 例如 click 前判斷flag==false執行 true就跳過 03/26 20:07
→ kerash:然後在 click 事件結束後把 flag reset 03/26 20:08
var clicked = false;
$("#menu").click({
clicked = true;
var idx = $(this).index();
$("#info").load("view/"+idx+".html,function({
if( idx == 6 && clicked == true ){
$("#info").after("<img />");
clicked = false;
}
}));
})
類似這樣嗎?
※ 編輯: Qiqi 來自: 114.41.106.23 (03/26 20:17)
推 kerash:大致上是如此,不過 load 中的 if 不用特地加 click==true 03/26 20:33
→ kerash:把 reset 放在 if 外面就可以了 03/26 20:34
→ kerash:否則當你 idx 不等於 6 時就會因為 flag = false 而無反應 03/26 20:34
→ kerash:另外在 click 後的第一步先判斷 if(click==true) 再執行 03/26 20:35
再修一次,把clicked改flag好了,不然會把click跟clicked搞混
var flag = true;
$("#menu").click({
if(flag){
flag = false;
var idx = $(this).index();
$("#info").load("view/"+idx+".html,function({
if( idx == 6){
$("#info").after("<img />");
}
}));
flag = true;
}
})
第一步先if(flag) 是因為if以外就算只有 a=1 ,被亂點還是會去跑
雖然不影響程式的結果,但會吃資源,是嗎?
※ 編輯: Qiqi 來自: 114.41.105.162 (03/26 21:50)
推 kerash:如果不先if的話,就一樣會執行load功能,怕會有錯 03/26 21:58
→ kerash:因為我不知道你的 load 會是甚麼東西,但這樣會正確點 03/26 21:58
→ Qiqi:謝謝 03/27 19:32