0

我正在使用 jquery 向我的网站添加快速菜单。我的源代码是这样的:

var span = $('body').append('<span id="quickmenu">');
       $('#quickmenu').css('position','fixed')
              .css('background-color','white')
              .css('border','4px solid black')
              .css('border-left','0px solid black')
              .css('top','15px')
              .css('left','0px')
              .css('font-family','Calibri')
              .css('font-size','14px')
              .css('line-height','0px')
              .css('color','#777777')
              .css('text-align','center');

我的问题是,在 FF 和 Chrome 中一切正常,但 IE9 没有向我显示任何内容。

所以我在访问上述代码后尝试了一些警报()......:

alert('I run'); // I run
alert(span); // [object Object]
alert($("#quickmenu")); // [object Object] 
alert(span == $("#quickmenu")); // false

所以我似乎是被创造出来的,但没有显示出来?!

我真的不知道那里出了什么问题,.... 控制台在 FF 和 IE9 中没有显示错误

有任何想法吗 ?!:-/

4

2 回答 2

1

我相信代码运行得太早了。您需要将代码包装在文档就绪函数中:

jQuery(document).ready(function() {

//your code goes here

});

实际上,我会将您的功能更改为如下所示:

 jQuery(document).ready(function(e) {   
    var span = $('<span id="quickmenu" >')
        .css({
            'position':'fixed',
             'background-color':'white',
             'border':'4px solid black',
             'border-left':'0px solid black',
             'top':'15px',
             'left':'0px',
             'font-family':'Calibri',
             'font-size':'14px',
             'line-height':'0px',
             'color':'#777777',
             'text-align':'center'
        })
        .appendTo($("body"));
});
于 2012-05-30T10:50:47.537 回答
1

正如 Smoki 在评论中指出的那样。

从以下切换:$("#target").append(my_dom_element);

至:my_dom_element.appendTo("#target");

似乎可以解决问题。

我正在使用一个大型但未编写脚本的元素,该元素是从外部文件导入并提前变成一个元素的。然后追加将失败。切换到使用该.appendTo()方法有效。所以我会冒险猜测.append()当被要求附加复杂元素时 IE 代码会混淆。尽管它可能很容易就是将它附加到使它感到困惑的东西。

(jQuery 1.8.2)

于 2012-10-22T18:44:35.340 回答