SelectToUISlider不会更改safari中的值

时间:2014-10-02 11:46:40

标签: javascript jquery html asp.net-mvc select-to-slider

我正在使用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'
    });
});

2 个答案:

答案 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