如何将几个语句组合成一个传递给JS方法的语句?

时间:2017-10-30 23:59:52

标签: javascript

我有几个js语句,如下所示

initSlider();

$('#slider ul li:last-child').prependTo('#slider ul');

$(window).resize(function(){
  initSlider();
});

$('.slider__next').click(function () {
  event.preventDefault();
  moveRight();
});

//Slider init
function initSlider() {
  var slider = $('#slider');
  var sliderUl = slider.find('ul');
  var sliderItems = slider.find('ul li');
  var sliderCount = $('#slider ul li').length;
  var viewportHeight = $(window).outerHeight();
  var viewportWidth = $(window).outerWidth();
  slider.css({
    width: viewportWidth,
    height: viewportHeight,
  });
  sliderUl.css({ 
    width: sliderItems.outerWidth() * sliderCount,
    height: viewportHeight,
    marginLeft: - viewportWidth,
  });
  sliderItems.css({
    width: viewportWidth,
    height: viewportHeight,
  });
}

//Slider next and slider prev controls
function moveRight() {
  var viewportWidth = $(window).outerWidth();
  $('#slider ul').animate({
    left: - viewportWidth
  }, 500, function () {
    $('#slider ul li:first-child').appendTo('#slider ul');
    $('#slider ul').css('left', '');
  });
}

我希望你明白这个主意。这些陈述看起来都很相似;然而#...内部的价值是不同的。此外,可以有多个甚至只有一个这样的陈述。我希望这些都放在一个我可以调用的函数中。考虑到我不确定有多少陈述,如何做到这一点?我不希望每个语句都有一个名为seveal times的方法。不知怎的,我想我可以传递#...的所有值的参数然后它能完成工作吗?

1 个答案:

答案 0 :(得分:2)

这应该这样做

$('#' + xxx_slot_name1 + ', #' + xxx_slot_name2 + ', #' + xxx_slot_name3 + ', #' + lorem_ipsum).children().remove()

只需用逗号分隔每个选择器即可抓取所有