我正在使用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():
alert('I run'); // I run
alert(span); // [object Object]
alert($("#quickmenu")); // [object Object]
alert(span == $("#quickmenu")); // false所以我似乎是被创造出来的,而不是显示出来的?!
我真的不知道哪里出了问题,...控制台在FF和IE9中未显示错误
有什么想法吗?!:-/
发布于 2012-05-30 18:50:48
我认为代码运行得太早了。您需要将代码包装在文档就绪函数中:
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-10-23 02:44:35
正如Smoki在评论中指出的那样。
切换自:$("#target").append(my_dom_element);
收件人:my_dom_element.appendTo("#target");
似乎解决了这个问题。
我使用了一个很大但没有脚本的元素,它是我从外部文件导入的,并提前转换成了一个元素。那么追加就会失败。切换到使用.appendTo()方法起作用了。因此,我大胆猜测,当被要求附加复杂元素时,.append()的IE代码会变得混乱。尽管它可能很容易就是它所附加的东西,这让它感到困惑。
(jQuery 1.8.2)
https://stackoverflow.com/questions/10814313
复制相似问题