jQuery IE7 / 8在列表之间追加项目

时间:2013-04-29 03:09:45

标签: jquery internet-explorer-8 onclick click appendto

我似乎无法找到任何理由为什么这在IE8中不起作用,因为它在其他浏览器中完美无缺地工作。

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

 <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在其他浏览器中无法正常运行?

我有正确的doctype声明,所以没有quircks模式的可能性。已经完成了很多其他记录良好的IE7 / 8修复程序,似乎没有一个适用于这个特定的实例。它似乎没有抛出任何错误,只是没有回应。单击任一选择框中的选项时,根本不执行任何操作。

任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:0)

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

以下是我应用的解决方法:

$('#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');
});