Javascript单击循环内的函数

时间:2012-09-30 06:49:04

标签: javascript jquery

我对javascript不太好,但我现在已经搜索了5个小时而没有运气。

我试图让按钮工作,如果我逐个编写代码它工作正常,并且可以正常使用。

我能理解这个问题。 点击部分仅在实际制作CLICK时有效。 我对吗? 但我如何纠正这样它会像我需要的那样工作?

我可以将$(name)值发送给click功能 所以,当我让我们说按钮-1被点击然后scrollTop:$(按钮-1块)或者我在这种情况下思考。

    var divHeight = 700
    var blocks = document.getElementsByClassName("blocks");
    var i = 1;

    for(i=1;i<blocks.length+1; i++) {
        var name = "#button-"+i;
        var blx = "#block-"+i;
        $(name).click(function(){
            $('html, body').stop().animate({
                scrollTop: $(blx).offset().top - ( $(window).height() - divHeight )/2 
              }, 2100,'easeInOutExpo');
         });

    }

1 个答案:

答案 0 :(得分:2)

试试这个:

var divHeight = 700
//var blocks = $(".blocks");

$('[id^="button"]').click(function(){
     var block = '#block-' + this.id.match(/\d+/g).join("");
     $('html, body').stop().animate({
          scrollTop: $(block).offset().top - ( $(window).height() - divHeight )/2 
     }, 2100,'easeInOutExpo');
});