【问题标题】:How can i apply .roundSlider() to all elements of Array?如何将 .roundSlider() 应用于 Array 的所有元素?
【发布时间】:2021-01-04 06:09:38
【问题描述】:

一个元素没问题,但是这里抛出错误“el.roundSlider不是函数”,Jquery在主js文件之前连接,与Jquery .each一样

const scArr = Array.from($('.slider'));

scArr.forEach(el => el.roundSlider({
    radius: 80,
    circleShape: "half-left",
    sliderType: "min-range",
    showTooltip: false,
    value: 150,
    width: 10,
    min: 0,
    max: 200
 }));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/roundSlider/1.6.1/roundslider.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/roundSlider/1.6.1/roundslider.css" integrity="sha512-XO53CaiPx+m4HUiZ02P4OEGLyyT46mJQzWhwqYsdqRR7IOjPuujK0UPAK9ckSfcJE4ED7dT9pF9r78yXoOKeYw==" crossorigin="anonymous" />

<div class="slider"></div>
<div class="slider"></div>
<div class="slider"></div>

【问题讨论】:

    标签: javascript jquery round-slider


    【解决方案1】:

    直接使用jquery类选择器就可以了

    $('.slider').roundSlider({
      radius: 80,
      circleShape: "half-left",
      sliderType: "min-range",
      showTooltip: false,
      value: 150,
      width: 10,
      min: 0,
      max: 200
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/roundSlider/1.6.1/roundslider.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/roundSlider/1.6.1/roundslider.css" integrity="sha512-XO53CaiPx+m4HUiZ02P4OEGLyyT46mJQzWhwqYsdqRR7IOjPuujK0UPAK9ckSfcJE4ED7dT9pF9r78yXoOKeYw==" crossorigin="anonymous" />
    
    <div class="slider"></div>
    <div class="slider"></div>
    <div class="slider"></div>

    【讨论】:

      【解决方案2】:

      $(el) 似乎可以解决问题:

      const scArr = Array.from($('.slider'));
      
      scArr.forEach(el => $(el).roundSlider({
          radius: 80,
          circleShape: "half-left",
          sliderType: "min-range",
          showTooltip: false,
          value: 150,
          width: 10,
          min: 0,
          max: 200
       }));
      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/roundSlider/1.6.1/roundslider.min.js"></script>
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/roundSlider/1.6.1/roundslider.css" integrity="sha512-XO53CaiPx+m4HUiZ02P4OEGLyyT46mJQzWhwqYsdqRR7IOjPuujK0UPAK9ckSfcJE4ED7dT9pF9r78yXoOKeYw==" crossorigin="anonymous" />
      
      <div class="slider"></div>
      <div class="slider"></div>
      <div class="slider"></div>

      jquery array 中的每个元素都不是 jquery 对象,我相信它实际上是一个节点元素。在浏览器中试试这个:$('p')[0] instanceof Element

      【讨论】:

      • 非常感谢))我可以问你吗?我想在当前滑块下方显示当前值,以便稍后获取,但值保持不变?当我使用第一个滑块时,值会发生变化
      • 你必须用更多代码打开另一个问题来说明你的意思@Ez_game
      猜你喜欢
      • 2014-12-08
      • 2015-02-10
      • 2020-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-19
      相关资源
      最近更新 更多