Javascript 在safari中选择ToIsLider不更改值
我正在使用SelectToIsLider为一个站点创建一个滑动搜索控件,在chrome、IE和windows phone上一切都很好。但是,在桌面safari或apple设备上,背景中的select值不会更改。“selected”属性会更改,但select元素的物理值不会更改。结果,我得到了错误的结果,一个查询字符串以不同的值两次传递到results视图中,导致了一个错误 我对SelectToIsLider使用了相当标准的语法。我已经检查过它是否与基本的jQueryUI一起工作 我已经使select元素在这个JSfiddle中可见,以防有人想看到Javascript 在safari中选择ToIsLider不更改值,javascript,jquery,html,asp.net-mvc,select-to-slider,Javascript,Jquery,Html,Asp.net Mvc,Select To Slider,我正在使用SelectToIsLider为一个站点创建一个滑动搜索控件,在chrome、IE和windows phone上一切都很好。但是,在桌面safari或apple设备上,背景中的select值不会更改。“selected”属性会更改,但select元素的物理值不会更改。结果,我得到了错误的结果,一个查询字符串以不同的值两次传递到results视图中,导致了一个错误 我对SelectToIsLider使用了相当标准的语法。我已经检查过它是否与基本的jQueryUI一起工作 我已经使sele
$(文档).ready(函数(){
// SelectToUISlider显然在总体上与iOS系统存在兼容性问题。即使在iPad上使用谷歌Chrome,我也无法让它正常工作。不过,它在Android上使用Chrome系统时工作得非常好
我建议使用jQueryUI中的.slider()方法,但是如果您需要更具体的选择,那么我们也会遇到同样的问题。我们必须包含jquery.ui.touch-punch“hack”脚本来让滑块在iOS safari上甚至响应。在我们这样做之后,我遇到了同样的问题,即下拉值没有设置。我相信这是因为SelectToIsLider使用的是旧的jQuery。在其默认的sliderOptions的slide函数中,它使用.attr
函数设置所选选项。我认为这只是设置了属性元素的属性,但不是其DOM对象的属性。我将代码更新为:
currSelect.find('option:selected').prop('selected', false);
currSelect.find('option').eq(ui.value).prop('selected', true);
第一行可能不是必需的,但关键是使用.prop
而不是.attr
currSelect.find('option:selected').prop('selected', false);
currSelect.find('option').eq(ui.value).prop('selected', true);