首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建一个干净的函数

创建一个干净的函数
EN

Stack Overflow用户
提问于 2016-02-03 20:48:30
回答 2查看 177关注 0票数 3

我下面有大量的JS块。我可以采取什么步骤来清理它,因为每次对不同的div迭代相同的函数。我把这个作为一个一般性的问题抛出,因为我不确定可以做些什么来简化这样的代码。

代码语言:javascript
复制
$(function() {
    $('#1').hover(function() {
      $('#1-pin').find('.pin-bounce').addClass('pin-hovered');
    }, function() {
      $('#1-pin').find('.pin-bounce').removeClass('pin-hovered');
    });
  });

  $(function() {
    $('#2').hover(function() {
      $('#2-pin').find('.pin-bounce').addClass('pin-hovered');
    }, function() {
      $('#2-pin').find('.pin-bounce').removeClass('pin-hovered');
    });
  });

  $(function() {
    $('#3').hover(function() {
      $('#3-pin').find('.pin-bounce').addClass('pin-hovered');
    }, function() {
      $('#3-pin').find('.pin-bounce').removeClass('pin-hovered');
    });
  });

  $(function() {
    $('#4').hover(function() {
      $('#4-pin').find('.pin-bounce').addClass('pin-hovered');
    }, function() {
      $('#4-pin').find('.pin-bounce').removeClass('pin-hovered');
    });
  });

  $(function() {
    $('#5').hover(function() {
      $('#5-pin').find('.pin-bounce').addClass('pin-hovered');
    }, function() {
      $('#5-pin').find('.pin-bounce').removeClass('pin-hovered');
    });
  });
  $(function() {
    $('#6').hover(function() {
      $('#6-pin').find('.pin-bounce').addClass('pin-hovered');
    }, function() {
      $('#6-pin').find('.pin-bounce').removeClass('pin-hovered');
    });
  });
EN

回答 2

Stack Overflow用户

发布于 2016-02-03 20:55:38

代码语言:javascript
复制
$('.some-common-class-instead-of-id').hover(function() {
  $(this).find('.pin-bounce').addClass('pin-hovered');
}, function() {
  $(this).find('.pin-bounce').removeClass('pin-hovered');
});

如果它不是一个孩子,你可以做一些类似的事情,但不只是寻找孩子,你可以建立一个这样的字符串:

代码语言:javascript
复制
$('.some-common-class-instead-of-id').hover(function() {
  var idToFind = $(this).attr('id') + '-pin';
  $('#' + idToFind).find('.pin-bounce').addClass('pin-hovered');
}, function() {
  var idToFind = $(this).attr('id') + '-pin';
  $('#' + idToFind).find('.pin-bounce').removeClass('pin-hovered');
});
票数 6
EN

Stack Overflow用户

发布于 2016-02-03 20:55:37

您可以使用for循环。

代码语言:javascript
复制
for (var i = 1; i <= 6; i++) {
    (function(i){
        $('#'+i).hover(function() {
           $('#'+i+'-pin').find('.pin-bounce').addClass('pin-hovered');
        }, function() {
           $('#'+i+'-pin').find('.pin-bounce').removeClass('pin-hovered');
        });
    })(i);

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35177546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档