在IE上jQuery追加不起作用(一致)?

时间:2012-04-11 21:05:31

标签: javascript jquery-ui calendar append twitter-bootstrap

我已经构建了一个关于IE无效的简单示例: http://so.demuyt.net/case1/

(IE8.jQuery 1.7.1)

单击IE中的一个日期不会执行任何操作,单击第二个日期将在第一个和第二个选定日期旁边放置一个“绿色药丸”。在Chrome中执行此操作将在第一次点击时输入1个药丸,在第二次点击时输入1个药丸。

我添加一个像这样的“药丸”:

$("#canvas").append('<span class="label label-success Workcounter ' + date + ' ' + calendarName + '">1</span>');

我像这样定位'药丸':

$(".Workcounter." + date + '.' + calendarName).position( { of : $(".Work-date-highlight."+calendarName+"."+date) , at : "left top" , offset : "3 3" } );

在js控制台中没有错误,我注意到在调试模式下,我会看到在Chrome中添加了药丸,而我在IE中看不到它(即使我点击了第二个日期)。

任何帮助或指示都会非常受欢迎,以使IE的行为像Chrome&amp;火狐。

1 个答案:

答案 0 :(得分:1)

用于定位元素的线条似乎对我造成了问题,请尝试替换:

$(".Workcounter." + date + '.' + calendarName).position( { of : $(".Work-date-highlight."+calendarName+"."+date) , at : "left top" , offset : "3 3" } );

使用:

var datePos = $(".Work-date-highlight."+calendarName+"."+date).position();

$(".Workcounter." + date + '.' + calendarName).css({
    left: datePos.left - 3,
    top: datePos.top - 3,
    position: 'absolute'
});