1

我正在使用 SelecttoUISlider 为网站创建滑块搜索控件,在 chrome、IE 和 windows phone 上一切正常。但是在桌面 safari 或苹果设备上,后台 select 的值不会改变。'selected' 属性会改变,但 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'
    });
});
4

2 回答 2

0

SelectToUISlider 通常显然与 iOS 存在兼容性问题。即使在 iPad 上使用 Google Chrome,我也无法使用它。不过,它与 Android 上的 Chrome 完美配合。

我建议使用 jQueryUI 中的 .slider() 方法,但是如果您需要更具体的选择,那么我们也会遇到同样的问题。

于 2014-11-19T09:45:05.983 回答
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.

于 2015-12-18T18:07:25.140 回答