2011-06-09 39 views
0

阿贾克斯()调用后,我有这样的代码:jQuery的HTML()不工作在IE返回HTML5

$(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中查找不起作用。它不会返回任何东西。

+0

是啊,我面临着同样的问题,然后我使用过滤器和它的作品。 – Vivek 2011-06-09 11:25:28

+0

更改为过滤器没有运气... – chchrist 2011-06-09 11:28:28

+0

你可以做一个[jsFiddle测试用例](http://jsfiddle.net/)?如果需要,可以使用'type:'post'','url:'/ echo/html /''和data:{'html':'

whatever you put here will be sent back
'}'来使AJAX工作。 – thirtydot 2011-06-09 11:51:49

回答

1

那么问题是,我想 得到一个HTML5文档....

也就是说,加上你在谈论的Internet Explorer解释它的事实。

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

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

然而,SHIV不 Internet Explorer时,加入与innerHTML的一个元素的 内容 工作之前被追加到文件。这是 一个常见用例,而在 库中很明显,例如当您尝试 附加或加载(等)HTML5内容时,它们就像jQuery一样。

用一个漂亮的解释另一个资源:http://css-tricks.com/html5-innershiv/