I have several jQuery-ui range sliders on a page which add and remove rows in a table and show their values above the sliders, live as the sliders are slid. the function showData has to check and update every table row before it's done and the slide event doesn't seem to execute anything until the showData function has returned. This table could potentially be quite big (1000+ rows)
Here is one of the slider's settings:
.slider({
min: 0,
max: 1250,
step: 50,
values: [0, 1250],
range: true,
slide: function (e, ui) {
$('span.height').text(ui.values[0] +
'mm - ' + ui.values[1] + 'mm ');
showData('height', ui.values, 'range');
}
});
My problem is that for IE users on a slow computer, nothing is seen to have changed when they slide the slider, not even the slider handle position. Until a second or more later.
What I want to do is let the $('span.height').text(... part of the slide function run, and the ui slider handle to be updated in the right place (ie: under the mouse) right away.
Then if the showData function was run after say 300 milliseconds, but only if the slide event was not triggered again in that time, would be perfect.
I would just put the showData function on the slider's stop event, but that's not what the client wants.
I put up a working version on jsfiddle: http://jsfiddle.net/vcgAU/1/
Any help would be appreciated
Thanks