如何获取jQuery UI范围滑块的值并存储用于条件判断?
获取jQuery UI价格范围滑块的值并用于条件判断
实现方案
因为你使用的是范围滑块(可设置价格区间),我们可以通过全局变量存储滑块的最小/最大值,之后在按钮点击事件中直接调用这些变量进行条件判断。以下是修改后的完整代码及关键说明:
修改后的HTML代码
<!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script> <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script> </head> <body> <div class="slider" id="slide"> <div id="slider-range" style="width: 50%; left: 25%; background-image: linear-gradient(to top, #bd6077 0%, #ec7e5d 100%);"></div> <p> <label for="amount" style="color: #f6931f; position: relative; left: 45%;">Price range:</label> <input type="text" id="amount" style="border:none; color:#f6931f; font-weight:bold;left: 45%; position: relative; background-color: rgb(48, 43, 43); width: 20%;"> </p> </div> <!-- 添加推荐按钮 --> <button id="recommend" style="position: relative; left: 45%; margin-top: 20px;">推荐产品</button> <!-- 弹窗元素 --> <div id="model" style="display: none; padding: 20px; background: white; border: 1px solid #ccc;">符合条件的产品推荐</div> </body> </html>
修改后的JavaScript代码
// 定义全局变量存储价格区间的最小/最大值 let priceMin = 0; let priceMax = 100; $("#slider-range").slider({ range: true, min: 0, max: 10000, values: [priceMin, priceMax], slide: function(event, ui) { // 更新输入框的价格显示 $("#amount").val("$" + ui.values[0] + " - $" + ui.values[1]); // 实时同步滑块值到全局变量 priceMin = ui.values[0]; priceMax = ui.values[1]; }, stop: function(event, ui) { // 可选:滑块停止拖动时再更新变量(和slide事件二选一即可) priceMin = ui.values[0]; priceMax = ui.values[1]; console.log(`当前价格范围:$${priceMin} - $${priceMax}`); } }); // 推荐按钮点击事件 document.getElementById('recommend').addEventListener("click", () => { // 假设selected、selected2是你页面中已定义的元素 const selected = document.querySelector('.your-selector-1'); const selected2 = document.querySelector('.your-selector-2'); // 使用存储的价格变量进行条件判断 if(selected.textContent === "Productivity" && selected2.textContent === "1080P" && priceMax > 1000) { $("#model").show(); } else { // 不符合条件时隐藏弹窗 $("#model").hide(); } });
关键说明
- 全局变量存储:通过
priceMin和priceMax两个全局变量,将滑块的当前值持久化存储,方便后续在按钮点击事件中直接调用。 - 实时更新变量:在滑块的
slide事件中实时同步值,确保拖动过程中变量始终是最新状态;如果不需要实时更新,仅保留stop事件中的赋值即可。 - 条件判断逻辑:根据需求使用
priceMax > 1000判断价格上限,你也可以修改为判断下限(priceMin > 1000)或区间包含特定值等逻辑。
内容的提问来源于stack exchange,提问作者TrealFaisal
相关产品推荐
相关产品推荐

