作者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://webptt.com/cn.aspx?n=bbs/Web_Design/M.1490448147.A.B2F.html
1F:推 mozzan: 和变数无关啊,会先执行generate_handler就纯粹是他是一个 03/25 22:10
2F:→ mozzan: function,是 function(event) {switchBanners();}这个才 03/25 22:11
3F:→ mozzan: 会在 click 时执行 03/25 22:11
4F:→ mozzan: 你把执行一个function和定义一个function弄混了 03/25 22:13