2014-12-01 104 views
-1

我有一個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

回答

0

請使用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