InnerHTML onclick无法识别功能

问题描述:

我有一个JavaScript文件,我在其中添加了innerHTML来更改div,并且onclick告诉我该函数未定义。在我的情况下,函数test()不被识别。有什么建议么? 下面是代码:InnerHTML onclick无法识别功能

this.initialize = function(){ 

    var startInput =(document.getElementById('startInput')); 

    var div = document.createElement('div'); 
    div.innerHTML = '<img id="cur_location_img" style="position:absolute;z-index: 1; margin-top: 7px; left:330px; top:20px;"'+ 
    ' src="../images/location.png" onclick="test()"/>'; 
    startInput.appendChild(div) 
} 

function test(){ 
    console.log("IN TEST"); 
} 
+0

究竟有什么啊'this'在该代码,它应该是'window' – adeneo 2014-12-01 18:26:28

+0

为了quicly测试,你可以做'window.test =函数(){...'它可能会工作,告诉你,你的功能超出了全球范围 – adeneo 2014-12-01 18:27:57

+0

非常感谢,有一个范围问题,它与window.test = function(){...} – user3603634 2014-12-01 18:35:39

请使用windows.funcname运行。

function initialize() { 

    var startInput =(document.getElementById('startInput')); 

    var div = document.createElement('div'); 
    div.innerHTML = '<img id="cur_location_img" style="position:absolute;z-index: 1; margin-top: 7px; left:330px; top:20px;"'+ 
    ' src="../images/location.png" onclick="window.ttt()"/>'; 
    startInput.appendChild(div) 
} 

window.ttt = function() { 
    alert('done'); 
} 

initialize(); 

jsfiddle