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

发布于 2024-11-14 09:45:11 字数 1678 浏览 1 评论 0原文

我有这样的代码:

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

I have this code:

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

In IE the find doesn't work. It doesn't return anything.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迷路的信 2024-11-21 09:45:11

问题是我正在尝试
获取 html5 文档....

结合您正在谈论的 Internet Explorer 事实就可以解释这一点。

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

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

但是,shiv 不起作用
当元素的 Internet Explorer
内容之前用innerHTML添加
被附加到文档中。那是
一个常见的用例,并且引人注目
当你尝试使用像 jQuery 这样的库时
附加或加载(等)HTML5 内容。

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

Well the problem is that I am trying
to get an html5 document....

That, combined with the fact you're talking about Internet Explorer explains it.

This should tell you everything you need to know:

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

However, the shiv doesn't work in
Internet Explorer when an element's
content is added with innerHTML before
being appended to the document. That's
a common use case, and noticeable in
libraries like jQuery when you try to
append or load (etc.) HTML5 content.

Another resource with a nice explanation: http://css-tricks.com/html5-innershiv/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文