如何在jQuery中缩短这个?

时间:2013-08-09 11:17:26

标签: javascript jquery

您如何为以下功能创建自动方法?唯一改变的是.eq()部分。有任何想法吗?谢谢!

$(".gomb").eq(0).click(function(){              
      $('.popup-overlay').eq(0).slideDown();
});

$(".gomb").eq(1).click(function(){              
      $('.popup-overlay').eq(1).slideDown();
});

$(".gomb").eq(2).click(function(){              
      $('.popup-overlay').eq(2).slideDown();
});

6 个答案:

答案 0 :(得分:2)

尝试

$(".gomb").click(function(){              
      $('.popup-overlay').eq($(this).index(".gomb")).slideDown();
});

var $gombs = $(".gomb").click(function(){              
      $('.popup-overlay').eq($gombs.index(this)).slideDown();
});

答案 1 :(得分:2)

你试过这个:

$(".gomb").click(function(){              
      $('.popup-overlay').eq($(this).index()).slideDown();
});

答案 2 :(得分:1)

尝试

$(".gomb:eq(0) , .gomb:eq(1) , .gomb:eq(2)").click(function(){              
  $('.popup-overlay').eq($(this).index()).slideDown();
});

这适用于索引0,1,2。如果您想要所有索引,请使用类似

$(".gomb").click(function(){              
  $('.popup-overlay').eq($(this).index()).slideDown();
});

答案 3 :(得分:0)

怎么样,

$(".gomb").click(function(e){              
      e.target.slideDown();
});

答案 4 :(得分:0)

这可能适用于你,

$(".gomb").click(function(){              
  $(this).slideDown();
});

答案 5 :(得分:0)

这是与代码完全相同的唯一解决方案,只有前三个“.gomb”元素触发弹出窗口的slideDown。

$(document).ready(function() {
    for(var ii = 0; ii < 3; ii++) {
        $(".gomb").eq(ii).click(function(){              
              $('.popup-overlay').eq(ii).slideDown();
        });
    }
});