这段jquery代码如何写得更好,用each或者什么?

for (var b = 1 ; b < 14 ; b ++) {
        (function (b) {
            $('.proLi .proList1').mouseover(function () {
                $('.proLi' + b + ' .slideDiv').eq($(this).index()).stop().slideDown(250);
            }).mouseout(function () {
                $('.proLi' + b + ' .slideDiv').eq($(this).index()).stop().slideUp(250);
            });
        })(b);
    }
阅读 2.7k
6 个回答

感觉你的代码结构有点复杂,你这样写肯定是可以优化的,而且你的14我想应该是你自己数出来的,如果以后有变动肯定得出问题。要不你把你的DOM结构贴出来大家看看?

1.如果是List绑定采用事件委托比较好
2.该缓存变量的时候没有缓存
3.没必要的for循环

我就觉的你可以就重复的地方,写个方法;然后重复的调用就行;没有必要for循环;

for (let b = 1 ; b < 14 ; b ++) {
            $('.proLi .proList1').mouseover(function () {
                $('.proLi' + b + ' .slideDiv').eq($(this).index()).stop().slideDown(250);
            }).mouseout(function () {
                $('.proLi' + b + ' .slideDiv').eq($(this).index()).stop().slideUp(250);
            });
}

谢邀~
没看到DOM结构,无法判断优化思路,但估计同样的需求给我,我可能会优先考虑用CSS的过渡来实现。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏