Jquery slider range doesn't work on iPad

2019-03-27 10:04发布

问题:

below is my Jquery slider range (min-max) code, the drag works fine on desktop computer, but when I test this on iPad, it doesn't work. Can anyone help me with this please?

Unfortunately I can't attach image. Below is the diagram of slider range,

=====(>)=======(<)=====

var maxValue,myRequest,isDown=false,setUrl;
setUrl = "/search_type/filter.php";

$( "#slider-range" ).slider({
    range: true,
    min: 0,
    max: 500,
    step:25,
    orientation: "horizontal",
    values: [ 0,500 ],
    slide: function( event, ui ) {

    if(ui.values[1] === 500)
    {
        maxValue = 500+"+";
    }
    else
    {
        maxValue = ui.values[1];
    }
        $( "#priceRange" ).val( "£" + ui.values[ 0 ] + " to £" + maxValue );
    }
});

// AJAX CALL 
$("#slider-range").find('a').mousedown(function(){
    isDown=true;
});
$(document).mouseup(function(){
    if(isDown)
    {
        return setAjaxRequest();
    }
});

// Decoration drag image
$( "#slider-range" )
.find('.ui-slider-handle')
.eq(0).addClass('a-right').end()
.eq(1).addClass('a-left');

//Default this is 
    $( "#priceRange" )
    .val( "£" + $( "#slider-range" )
    .slider( "values", 0 ) + " to £" + $( "#slider-range" )
    .slider( "values", 1 )+'+');
    return true;

回答1:

Try this http://touchpunch.furf.com/

I used for a project and it solved the problems i had on ipad and touch devices

Also available in cdnjs



回答2:

As suggested, I used http://touchpunch.furf.com/

and it worked perfectly!

Into the HTML page I used:

<script src="_js/jquery-1.9.1.min.js"></script>
<script src="_js/jquery-ui-1.10.1.custom.min.js"></script>
<script src="_js/jquery.ui.touch-punch.min.js"></script>

JavaScript code that I used to create the Slider Range:

var slider = $( "#dv_sliderrange" ).slider({
        range: true,
        orientation: 'horizontal',
        min: 0,
        max: 10000,
        step: 10,
        values: [ 0, 10000 ],
        // Update my own form fields with the Slider values
        slide: function( event, ui ) {
            $( "#fd_amount0" ).val( "$ " + ui.values[ 0 ]);
            $( "#fd_amount1" ).val( "$ " + ui.values[ 1 ]);
        }
    }).draggable();


回答3:

Thanks a lot for the answers. I tried the solution and it was not worked for me at first.Then I realized that I have one more js file that was breaking the functionality. It was jquery progress bar js.I removed it worked perfectly.