如何简化jQuery代码,插件,滚动到块

时间:2016-11-28 21:45:48

标签: javascript jquery

如何简化jQuery代码。 如果我有1页有几个不同的块。 我需要多次复制此代码才能使用不同的元素? 如何为多个块写1个代码?

  $('.go_to').click( function(){ 
        var scroll_el = $(this).attr('href'); 
            if ($(scroll_el).length != 0) {  
            $('html, body').animate({ scrollTop: $(scroll_el).offset().top }, 500); 
            }
            return false; 
        });

    <a class="go_to" href="#elm">button</a> или <a class="go_to" href=".elm">block-scroll</a>

$('.go_to-1').click( function(){ 
        var scroll_el = $(this).attr('href'); 
            if ($(scroll_el).length != 0) {  
            $('html, body').animate({ scrollTop: $(scroll_el).offset().top }, 500); 
            }
            return false; 
        });

    <a class="go_to-1" href="#elm">button</a> или <a class="go_to-1" href=".elm">block-scroll</a>

$('.go_to-2').click( function(){ 
        var scroll_el = $(this).attr('href'); 
            if ($(scroll_el).length != 0) {  
            $('html, body').animate({ scrollTop: $(scroll_el).offset().top }, 500); 
            }
            return false; 
        });

    <a class="go_to-2" href="#elm">button</a> или <a class="go_to-2" href=".elm">block-scroll</a>

1 个答案:

答案 0 :(得分:0)

根据您的示例,最简单的方法是使用逗号分隔列表使用jquery选择多个元素,并一次定义所有这些元素的点击处理程序:

  $('.go_to, .go_to-1, .go_to-2').click( function(){ 
        //on click code
  });

我假设您需要不同的锚类,但如果没有,您可以给它们所有相同的类(例如class="go_to")并使用

  $('.go_to').click( function(){ 
        //on click code
  });