0

我似乎找不到任何理由说明为什么这在 IE8 中不起作用,因为它在其他浏览器中可以完美运行并且符合预期。

我有 2 个填充有员工姓名的选择框。

 <select id="schedule-add-employees-list" size="7">
   <option class="schedule-add-employees-option1" value="jsmith">John Smith</option>
   <option class="schedule-add-employees-option1" value="jbloggs">Joe Bloggs</option>
   <option class="schedule-add-employees-option1" value="jdoe">Jane Doe</option>
 </select>

 <select id="schedule-add-employees" size="7">
   <option class="schedule-add-employees-option2" value="msmith">Mary Smith</option>
 </select>

我想要发生的事情,因为它适用于 Firefox、Chrome 和 Safari,当您单击第一个列表中的一个选项时,它会被删除,然后添加到第二个列表中,反之亦然。我拥有的 jQuery 代码:

$('.schedule-add-employees-option1').click(function() {
    $(this).appendTo('#schedule-add-employees');
    $(this).removeClass('schedule-add-employees-option1');
    $(this).addClass('schedule-add-employees-option2');
})
$('.schedule-add-employees-option2').click(function() {
    $(this).appendTo('#schedule-add-employees-list');
    $(this).removeClass('schedule-add-employees-option2');
    $(this).addClass('schedule-add-employees-option1');
})

是否有任何特殊原因在 IE8 中无法像在其他浏览器中那样运行?

我有正确的文档类型声明,所以不可能出现怪癖模式。已经检查了许多其他有据可查的 IE7/8 修复程序,但似乎没有一个适用于这个特定实例。它似乎没有抛出任何错误,只是没有响应。单击任一选择框中的选项时根本不执行任何操作。

任何帮助将不胜感激!

4

1 回答 1

0

正如 Adeneo 在对该问题的评论中所报告的那样,问题在于点击事件在 IE7 和 IE8 中没有按预期响应,并且根据链接信息判断,它在较新的浏览器中可能不可靠。

这是我应用的解决方法:

$('#schedule-add-employees').change(function() {
    var obj = $('#schedule-add-employees option:selected');
    obj.appendTo('#schedule-add-employees-list');
});
$('#schedule-add-employees-list').change(function() {
    var obj = $('#schedule-add-employees-list option:selected');
    obj.appendTo('#schedule-add-employees');
});
于 2013-04-29T03:29:20.120 回答