jQuery html()在ajax()调用后返回html5后无法在IE中工作

时间:2011-06-09 11:23:44

标签: jquery ajax internet-explorer find

我有这段代码:

$(function(){



    $('body').append('<div id="tooltipMaterials"><span id="arrow"></span><div id="inside"></div></div');
                var $tooltip = $('#tooltipMaterials');
                $tooltip.hide();
                $('.material a').mouseenter(function(){
                    var index = $(this).index();
                    var offset = $(this).offset();
                    var top = offset.top+46;
                    var left = offset.left-$tooltip.width()+46;
                    $tooltip.css({top:top+'px',left:left+'px'});
                    $tooltip.children('#inside').empty();
                    $tooltip.prepend('<span id="preloader"></span>');
                    $tooltip.fadeIn(200);

                    $.ajax({
                        url:'materials.htm',
                        dataType: 'html',
                        cache: false,
                        error:function(xhr, status, errorThrown) {
                            alert(errorThrown+'\n'+status+'\n'+xhr.statusText);
                        }, 
                        success:function(data){
                            $('#preloader').remove();
                            alert(data);
                            alert($(data).find('.item:eq('+index+')').html());
                            $tooltip.children('#inside').html($(data).find('.item:eq('+index+')'));
                        }

                    });
                }).mouseleave(function(){
                    $tooltip.hide();
                }).click(function(){return false;});
            });

在IE中,查找不起作用。它没有返回任何东西。

1 个答案:

答案 0 :(得分:1)

  

问题是我正在努力   获取html5文档......

结合您正在谈论的事实,Internet Explorer解释了它。

这应该告诉你需要知道的一切:

http://jdbartlett.github.com/innershiv/

  

然而,shiv无效   Internet Explorer时的元素   内容之前添加了innerHTML   被附加到文档中。那是   一个常见的用例,并且值得注意   尝试时,像jQuery这样的库   追加或加载(等)HTML5内容。

另一个有很好解释的资源:http://css-tricks.com/html5-innershiv/