【问题标题】:Jquery slider (php values in query)Jquery 滑块(查询中的 php 值)
【发布时间】:2016-02-21 21:18:00
【问题描述】:

在 Jquery 滑块方面需要您的帮助。

我的 jquery 代码

<script>
jQuery(document).ready(function($) {
      $('#price_filter').val(<?php echo $min; ?>-<?php echo $max; ?>);
      $("#price_slider").slider({
        min: <?php echo $min; ?>,
        max: <?php echo $max; ?>,
        values:[<?php echo $min; ?>, <?php echo $max; ?>],
        step: 100,
        range:true,
        slide: function(event, ui) {
          $("#price_range_label").html('$' + ui.values[ 0 ] + ' - ' + ui.values[ 1 ] + '$' );
          $('#price_filter').val(ui.values[0] + ' -' + ui.values[1]).trigger('change');
        }
      });

      $('#status :checkbox').prop('checked', false);
      $('#all_status').on('click', function(){
        $('#status :checkbox').prop('checked', $(this).is(':checked'));
      });

      FilterJS(services, "#service_list", {
        template: '#template',
        criterias:[
          {field: 'amount', ele: '#price_filter', type: 'range'},
          {field: 'status', ele: '#status :checkbox'}

        ],

      });
});

</script>

HTML

<center><span id="price_range_label" style="margin:10px;">
<?=$min; ?>-<?=$max; ?> USD.</i></span></center>
<br/>
<div id="price_slider"></div>
<input type="hidden" id="price_filter" value='<?php echo $min; ?>-<?php echo $max; ?>'/>

问题是当我选择最大范围并将其滑动以最小化某处的所有项目时。仅当我从最小值滑动到最大值时,此滑块才能正常工作。

我还有一个巨大的值(例如 min 500 max 10000000)

我做错了什么?谁能帮我解决它? :(

【问题讨论】:

    标签: javascript php jquery


    【解决方案1】:

    不要在 jQuery 中使用 PHP 代码。你可以像$(element).attr('attribute');$(element).val(); 将值放到jQuery 中

    你只需写入 HTML:

    <input type="hidden" id="min" value="<?p=$min;?>">
    <input type="hidden" id="max" value="<?p=$max;?>">
    

    在 jQuery 中:

    min: $('#min').val(),
    max: $('#max').val(),
    values:[$('#min').val(), $('#max').val()],
    

    【讨论】:

    • 谢谢!但是 Jquery 不能识别值。在浏览器的源代码中,没有最小值和最大值。 [代码] jQuery(document).ready(function($) { $("#price_slider").slider({ min: $('#min').val(), max: $('#max'). val(), values:[$('#min').val(), $('#max').val()], step: 100, range: true, [/code]
    • jQuery 是客户端进度。您无法在源代码中看到。如果你想知道 jQuery 中的值是什么,你必须在 jQuery 中添加 console.log("MIN:" + min + "MAX" + max);。喜欢:slide: function(event, ui) { console.log("MIN:" + min + "MAX" + max); 并在浏览器中查看控制台 - CTRL + SHIFT + J 或 F12
    • 是的,我知道,不幸的是,您的示例滑块不起作用,导致无法识别最小值和最大值。 :(
    • 因为您在 PHP 代码中没有值。
    • 输入文件已从 PHP 获取值。最低 - 660;最大 - 12300
    【解决方案2】:

    使用 jQuery 插件实现滑块功能的一个很好的替代方法是使用对范围输入的原生支持。 (FF23+, Chrome 4+, Safari 3.1+, Opera 10+, Android 2.1 and IE10+) 支持它。

    您可以设置它的样式并使用 jQuery 进行事件监听。

    这是一个例子:

    $('.slider').on('change input', function() {
      $('.text').text($(this).val());
    });
    input[type=range] {
      -webkit-appearance: none;
      margin: 10px 0;
      width: 100%;
    }
    
    input[type=range]:focus {
      outline: none;
    }
    
    input[type=range]::-webkit-slider-runnable-track {
      width: 100%;
      height: 12.8px;
      cursor: pointer;
      animate: 0.2s;
      box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
      background: #ac51b5;
      border-radius: 25px;
      border: 0px solid #000101;
    }
    
    input[type=range]::-webkit-slider-thumb {
      box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
      border: 0px solid #000000;
      height: 20px;
      width: 39px;
      border-radius: 7px;
      background: #65001c;
      cursor: pointer;
      -webkit-appearance: none;
      margin-top: -3.6px;
    }
    
    input[type=range]:focus::-webkit-slider-runnable-track {
      background: #ac51b5;
    }
    
    input[type=range]::-moz-range-track {
      width: 100%;
      height: 12.8px;
      cursor: pointer;
      animate: 0.2s;
      box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
      background: #ac51b5;
      border-radius: 25px;
      border: 0px solid #000101;
    }
    
    input[type=range]::-moz-range-thumb {
      box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
      border: 0px solid #000000;
      height: 20px;
      width: 39px;
      border-radius: 7px;
      background: #65001c;
      cursor: pointer;
    }
    
    input[type=range]::-ms-track {
      width: 100%;
      height: 12.8px;
      cursor: pointer;
      animate: 0.2s;
      background: transparent;
      border-color: transparent;
      border-width: 39px 0;
      color: transparent;
    }
    
    input[type=range]::-ms-fill-lower {
      background: #ac51b5;
      border: 0px solid #000101;
      border-radius: 50px;
      box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
    }
    
    input[type=range]::-ms-fill-upper {
      background: #ac51b5;
      border: 0px solid #000101;
      border-radius: 50px;
      box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
    }
    
    input[type=range]::-ms-thumb {
      box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;
      border: 0px solid #000000;
      height: 20px;
      width: 39px;
      border-radius: 7px;
      background: #65001c;
      cursor: pointer;
    }
    
    input[type=range]:focus::-ms-fill-lower {
      background: #ac51b5;
    }
    
    input[type=range]:focus::-ms-fill-upper {
      background: #ac51b5;
    }
    
    body {
      padding: 30px;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input class='slider' type="range" min="50" max="500000" value="100" />
    <div class='text'>
    50
    </div>

    这是一个 jsfiddle: https://jsfiddle.net/nu2m0cm9/

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 2013-04-29
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多