2012-02-01 66 views
2

这是我的代码:jQuery的.load()不新创建的DOM div元素上工作

$(document).ready(function(){ 


    var searchDom = document.createElement('div'); 
    searchDom.className = "popContainer"; 
    searchDom.style.cssText = [ 
     'background-color: #ffd700;', 
     'background-image: -webkit-repeating-linear-gradient(' + 
      '45deg, transparent, transparent 35px,' + 
      'rgba(0,0,0,.1) 35px, rgba(0,0,0,.1) 70px);', 
     'color: #efefef;', 
     'padding: 10px;', 
     'font: 14px Arial;' 
    ].join(' '); 
    document.body.style.cssText = 'position: relative'; 
    document.body.parentElement.insertBefore(searchDom, document.body); 


var greeting = "hola"; 
var button = document.getElementById("navSearch"); 
button.person_name = "Roberto"; 
button.addEventListener("keydown", function() { 
$('.popContainer').load('popup.html'); 
alert(greeting); 
}, false); 
}); 

所以基本上我创建与类名“popContainer”一个新的DOM元素,并试图当用户开始输入时,将popup.html中的内容填充到它。这是行不通的,我尝试使用.post没有成功,我不知道是否和如何.live会在这里使用。

请注意,此文件是Chrome扩展的一部分,并且alert()确实正常工作。

+2

你真的想要添加* body元素之前的新元素* – 2012-02-01 02:35:03

+0

目前是的,因为我不知道我使用这个扩展的网站如何使用他们的JS,风格等。 – Tom 2012-02-01 02:37:31

+1

Chrome的开发工具是否有错误? – abraham 2012-02-01 02:39:07

回答