我正在使用SelecttoUISlider为网站创建一个滑块搜索控件,一切都在Chrome,IE和Windows手机上运行良好。但是在桌面游侠或苹果设备上,后台中选择的值不会改变。选择'属性更改,但select元素的物理值不是。结果我得到错误的结果,并且查询字符串被传递到结果视图两次,具有不同的值,导致错误。
我使用非常标准的SelectToUISlider语法。我已经检查过它可以使用基本的jquery UI
我已经在这个JSfiddle中看到了select元素,任何人都想看到 http://jsfiddle.net/847aypbb/
$(document).ready(function () {
//<![CDATA[
// hide the select elements so that the sliders will take over
//$('.suggest-wrap select').hide();
// set up the sliders
$('#group-experience').selectToUISlider({
tooltip: false, labelSrc: 'text'
});
$('#distance-piste').selectToUISlider({
tooltip: false, labelSrc: 'text'
});
$('#hotel-type').selectToUISlider({
tooltip: false, labelSrc: 'text'
});
$('#ski-area').selectToUISlider({
tooltip: false, labelSrc: 'text'
});
});
答案 0 :(得分:0)
SelectToUISlider显然与iOS有兼容性问题。即使在iPad上使用谷歌浏览器,我也无法使用它。不过,它适用于Android上的Chrome。
我建议使用jQueryUI中的.slider()方法,但是如果你需要更具体的选择,那么我们就会遇到同样的问题。
答案 1 :(得分:0)
我们必须包含jquery.ui.touch-punch“hack”脚本,以使滑块甚至在iOS Safari中做出响应。在我们这样做之后,我遇到了与未设置下拉值相同的问题。我相信这是因为selectToUiSlider正在使用旧的jQuery。在其默认的sliderOptions'滑动功能中,它使用.attr
功能设置所选选项。我认为这只设置元素的属性,但不设置其DOM对象的属性。我将代码更新为:
currSelect.find('option:selected').prop('selected', false);
currSelect.find('option').eq(ui.value).prop('selected', true);
第一行可能没有必要,但关键是使用.prop
代替.attr
。