【问题标题】:Passing parameters with array in javascript在javascript中使用数组传递参数
【发布时间】:2016-10-27 13:18:23
【问题描述】:

我有几个滑块实例,我需要将相同的参数传递给每个实例。

我假设我需要数组,但由于我是 JS 的新手,我不确定如何正确地做到这一点。

参数看起来像这样:

spaceBetween: 20,
slidesPerView: 5,
breakpoints: {
  600: {
    slidesPerView: 2
  },
  991: {
    slidesPerView: 3
  },
  1200: {
    slidesPerView: 4
  }
}

和滑块实例:

var swiper1 = new Swiper('.swiper1', {
   prevButton: '.b-prev-1',
   nextButton: '.b-next-1',

   //here I need to get the rest of the parameters

});

谢谢你:)

【问题讨论】:

  • 看看$.extend - 它允许你将对象合并在一起,所以你可以有var commonOpts = {spaceBetween: 20 ...},然后是$.extend({}, commonOpts, swiper1Opts)

标签: javascript jquery html arrays variables


【解决方案1】:

你好,你可以像下面这样写

 var swiper1 = new Swiper('.swiper1', [
   prevButton: '.b-prev-1',
   nextButton: '.b-next-1',
   //here I need to get the rest of the parameters
]);

【讨论】:

  • 如果您使用经过 sn-p 认证的代码可以工作,但是,也许在您的答案中可以适合使用代码格式。
  • 我使用它是因为我遇到了问题。我遇到的问题是因为'['它的格式不正确所以我已经添加到代码sn-p
  • 独立于问题,如果不起作用,则使用它没有意义。
【解决方案2】:

试试看

function(arrayP){    
   for(var i = 0; i < arrayP.length; i++){
      alert(arrayP[i]);    //no .value here
   }
}

链接:-Passing an array as parameter in JavaScript

【讨论】:

    【解决方案3】:

    你可以使用jQuery的$.extend()

    var extraDetails = {
        spaceBetween: 20,
        slidesPerView: 5,
        breakpoints: {
          600: {
            slidesPerView: 2
          },
          991: {
            slidesPerView: 3
          },
          1200: {
            slidesPerView: 4
          }
        }
    };
    
    var swiper1 = new Swiper('.swiper1', $.extend({ 
            prevButton: '.b-prev-1',
            nextButton: '.b-next-1'
        }, 
        extraDetails
    ));
    

    【讨论】:

      【解决方案4】:

      在 ES5 中这样做最有说服力的方法是为每张幻灯片创建一个新的配置对象,但使用 $.extend 将其基于一个公共对象。 (Object.assign() 在 VanillaJS 中类似)

      var commonConfig = { spaceBetween: 20, slidesPerView: 5, breakPoints: { ... } };
      
      var swiper1 = $.extend(true, {}, commonConfig, {
          prevButton: '.b-prev-1',
          nextButton: '.b-next-1'
      });
      
      var swiper2 = $.extend(true, {}, commonConfig, {
          prevButton: '.b-prev-2',
          nextButton: '.b-next-2'
      });
      

      看到更多代码会很酷——我想你可以遍历你的 DOM 元素并为每个元素即时创建配置。比如:

      $('.swiper').each(function(idx, el){
          $(this).swiper({
              spaceBetween: 20,
              slidesPerView: 5,
              breakPoints: { ... },
              prevButton: '.b-prev-'+(idx+1),
              nextButton: '.b-next-'+(idx+1)
          });
      });
      

      【讨论】:

        猜你喜欢
        • 2017-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-11
        • 2014-11-20
        相关资源
        最近更新 更多