jQuery Range Slider 使用默认属性值

Posted

技术标签:

【中文标题】jQuery Range Slider 使用默认属性值【英文标题】:jQuery Range Slider using default attribute values 【发布时间】:2021-08-11 22:48:10 【问题描述】:

我正在使用具有以下代码的 jquery Range Slider。

$("#maxAge").slider(
    range: true,
    min: 18,
    max: 75,
    values: [20, 45],
    slide: function(event, ui) 
      $("#sliderVal").val(ui.values[0] + "-" + ui.values[1]);
    
);
$("#sliderVal").val($("#maxAge").slider("values", 0) + "-" + $("#maxAge").slider("values", 1));

<div id="maxAge" min="35" max="75" minVal="25" maxVal="45"></div>
<input type="text" class="slider-text text-right gradient-text mt-2" id="sliderVal" readonly>

我想这样使用它:

$("#maxAge").slider(
    range: true,
    min: $(this).attr('min'),
    max: $(this).attr('max'),
    values: [$(this).attr('minVal'), $(this).attr('maxVal')],
    slide: function(event, ui) 
      $("#sliderVal").val(ui.values[0] + "-" + ui.values[1]);
    
);

我想从 DIV 中获取属性值并在此处使用它,以便以后可以使用 php 更改属性值。

【问题讨论】:

【参考方案1】:

考虑以下使用数据属性的示例。

$(function() 
  $("#maxAge").slider(
    range: true,
    min: $("#maxAge").data('min'),
    max: $("#maxAge").data('max'),
    values: [
      $("#maxAge").data("min-value"),
      $("#maxAge").data('max-value')
    ],
    slide: function(event, ui) 
      $("#sliderVal").val(ui.values[0] + "-" + ui.values[1]);
    
  );
  $("#sliderVal").val($("#maxAge").data("min-value") + "-" + $("#maxAge").data('max-value'));
);
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<div id="maxAge" data-min="18" data-max="75" data-min-value="20" data-max-value="45"></div>
<input type="text" class="slider-text text-right gradient-text mt-2" id="sliderVal" readonly />

数据属性是一种常用的方法来存储与元素相关的数据。您可以使用 jQuery .data() 轻松调用它。

查看更多:

https://api.jquery.com/data/

【讨论】:

我已经从 Swati 的回答中找到了解决方案。但是,我在 sn-p 中看到您的解决方案也同样有效。因此,为您 +1 :)【参考方案2】:

您可以使用 your_div_id 获取属性值,然后使用parseInt() 将字符串解析为整数。

演示代码

$("#maxAge").slider(
  range: true,
  min: parseInt($("#maxAge").attr('min')), //get it like this and then pasre it..as integer
  max: parseInt($("#maxAge").attr('max')),
  values: [parseInt($("#maxAge").attr('minVal')), parseInt($("#maxAge").attr('maxVal'))],
  slide: function(event, ui) 
    $("#sliderVal").val(ui.values[0] + "-" + ui.values[1]);
  
);
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div id="maxAge" min="18" max="75" minVal="20" maxVal="45"></div>
<input type="text" class="slider-text text-right gradient-text mt-2" id="sliderVal" readonly>

【讨论】:

以上是关于jQuery Range Slider 使用默认属性值的主要内容,如果未能解决你的问题,请参考以下文章

jQuery UI Slider对数刻度

用于时间的 JQuery UI 滑块

jquery UI Slider 怎么设置小数

jQuery UI Slider 不改变默认值

如何在 jquery 脚本中输出 Coldfusion 变量?

Jquery Slider,加载时的默认值