根据滑块中选择的数组字符串显示不同的html?

时间:2013-04-08 09:09:16

标签: jquery html jquery-ui

我一直在研究jQuery UI单一滑块,我打算根据选中的数组中的字符串显示项目的详细信息。到目前为止,它显示了该项目的价格,但我需要它做的主要是显示不同的html内容(它可能最终成为一个表,可能),这取决于句柄所在的滑块中的哪个步骤。到目前为止我已经有了这段代码:

<!doctype html>

<html lang="en">
<head>
  <meta charset="utf-8" />
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />

  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    var valMap = [
"1.5",
"2.5",
"5.5",
"10.5"
];
    $("#slider").slider({
        min: 0,
        max: valMap.length - 1,
        value: 0,
        animate: false,
        change: function(event, ui) {                        
            $("#amount").val('$' + valMap[ui.value] + '0');
        }       
    });
                $("#amount").val('$' + valMap[$("#slider").slider("value")] + '0');
});
</script>
</head>
<body>
<br /><br />
<center>
<div id="slider"></div>

<div id="planlabel"><p>
  <label for="amount">Plan:</label>
  <input type="text" id="amount" style="border: 0; color: #f6931f; font-weight: bold;" readonly />
</p></div>

</center>

我试图设置一个“if”语句来检查'amount'输入区域的值,但是这样做不是很好(不管怎么样,哈哈)。任何帮助将不胜感激!

以上是上述代码的示例:http://jsfiddle.net/SDDJ/zHMYc/1/

1 个答案:

答案 0 :(得分:2)

您可以使用滑块的值来确定要显示的内容。也许类似于以下内容: -

<div class="content" id="content0"> ... </div>
<div class="content" id="content1"> ... </div>
<div class="content" id="content2"> ... </div>
<div class="content" id="content3"> ... </div>

然后只显示与div匹配的ui.value,并隐藏其他内容:

change: function(event, ui) {                        
  $("#amount").val('$' + valMap[ui.value] + '0');
  $('#content' + ui.value).show().siblings('div.content').hide();
}

Here's a fiddle