如何在for循环中创建事件侦听器,分配给动态创建的变量

时间:2018-01-23 22:24:30

标签: javascript jquery

所以我想制作这个有效的代码:

                $('#link1').click(function() { $.scrollTo($('#1'), 500); });
                $('#link2').click(function() { $.scrollTo($('#2'), 500); });
                $('#link3').click(function() { $.scrollTo($('#3'), 500); });
                $('#link4').click(function() { $.scrollTo($('#4'), 500); });
                $('#link5').click(function() { $.scrollTo($('#5'), 500); });
                $('#link6').click(function() { $.scrollTo($('#6'), 500); });
                $('#link7').click(function() { $.scrollTo($('#7'), 500); });
                $('#link8').click(function() { $.scrollTo($('#8'), 500); });
                $('#link9').click(function() { $.scrollTo($('#9'), 500); });
                $('#link10').click(function() { $.scrollTo($('#10'), 500); });
                $('#link11').click(function() { $.scrollTo($('#11'), 500); });
                $('#link12').click(function() { $.scrollTo($('#12'), 500); });
                $('#link13').click(function() { $.scrollTo($('#13'), 500); });
                $('#link14').click(function() { $.scrollTo($('#14'), 500); });
                $('#link15').click(function() { $.scrollTo($('#15'), 500); });

不那么长,看起来很傻。我想用for循环创建那些事件监听器,这就是我想出的:

                for(var i=1; i<=15 ; i++ ){
                    var linkName1 = '#link'+i;
                    var linkName2 = '#'+i;
                    $(linkName1).click(function() { $.scrollTo($(linkName2), 500); });
                }

但是现在它为每个链接分配了#15。我知道这是范围问题。如何使它工作?

0 个答案:

没有答案