作者lueichun (no anonymous)
看板Web_Design
標題[問題] JQuery事件的設定
時間Sat Mar 25 21:22:24 2017
我在stackoverflow上看到一個範例:
http://bit.ly/2nTLOgD
裡面有這麼一段code:
function generate_handler( j ) {
return function(event) {
switchBanners(j, true);
};
}
for(var i = 1; i <= totalBanners; i++){
$('#slider-' + i).click( generate_handler( i ) );
}
這段code我自己實驗的結果 是可以正常執行的
但我看了網頁的解釋 還是不懂為什麼寫在click()內的generate_handler( i )
是可以在迴圈執行時就被執行 而不會等到事件發生時才執行
看起來是跟變數的有效範圍有關 但不知道具體的原因
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.99.247
※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1490448147.A.B2F.html
推 mozzan: 和變數無關啊,會先執行generate_handler就純粹是他是一個 03/25 22:10
→ mozzan: function,是 function(event) {switchBanners();}這個才 03/25 22:11
→ mozzan: 會在 click 時執行 03/25 22:11
→ mozzan: 你把執行一個function和定義一個function弄混了 03/25 22:13