【发布时间】:2013-05-25 16:00:06
【问题描述】:
我被这个问题困扰了将近一天......
如下所示的简单选择列表:
<select id="slide_number">
<option value="slide_1">Slide 1</option>
<option value="slide_2">Slide 2</option>
<option value="slide_3">Slide 3</option>
<option value="slide_4">Slide 4</option>
</select>
我使用此代码删除选定的属性,然后将其再次添加到正确的选项中。
$('#slide_number').change( function() {
$('#slide_number option:selected').removeAttr('selected');
$('#slide_number :selected').each( function() { alert( $(this).find('#slide_number :selected') ) } );
$("#slide_number option[value='slide_" + _t._current_slide + "']" ).attr( 'selected','' );
} );
一切都会很完美,但是在幻灯片 2 之后它不能正常工作,它会自动选择第一个选项,即使在 chrome 中我看到代码正在更改并且所选标签正在正确添加到其他选项。
在 Safari 的 iPad 上,我看到当我选择选项 3 时,它同时对选项 1 和选项 3 进行签名,我认为这是导致问题的原因,但我无法摆脱自动选择1个选项:/
我添加了这个警报,它显示即使删除了选定的属性,选项 1 仍然被选中 :(
感谢您的时间和想法...
【问题讨论】:
-
请说明使用此代码
$("#slide_number option[value='slide_" + _t._current_slide + "']" ).attr( 'selected','' );的逻辑。 -
你想在
change事件中得到什么/做什么? -
这是按值从列表中选择右侧幻灯片。当我右转时,我更改 _current_slide 编号并触发 $('#slide_number).trigger('change') 以更新列表。更改事件只是将列表中的选定属性更改为当前属性。我看到的是当我将 multiple='multiple' 添加到 select 标签时,一切正常,只是 select 本身正在更改为我不想要的列表
-
那么,在更改时您想将
_t._current_slide设置为选中?顺便说一句,您使用的是哪个版本的 jQuery 文件? -
它已经设置好了,我想在选项列表中找到该幻灯片并添加 attr 选中。但我希望所有其他人都不要,并且第一张幻灯片以某种方式被选中,并且没有显示在代码中....