2014-03-06 62 views
2

我有一個Java腳本文件,如下圖所示。
在這個文件中,我爲我的網頁創建了一個html代碼,並且在這個html中,我調用了在Java腳本文件中定義的函數 。 但是,當我運行它,我得到的功能沒有定義。
附加信息:在動態創建的html中調用javascript函數

http://s8.postimg.org/nqwv1na6d/js_function.png

http://s1.postimg.org/mqyu5zalr/js_function.png

加提到( 「C按鈕」)的功能在Java腳本文件中的另一個函數的定義。

(function() { 
    var thecid = 0; 

    function cButton (ii) { 
     document.getElementById(ii).style.display = 'none'; 
     alert('fdgfg'); 
    } 

    $("#subber").on("click", function() { 
     var thelm = "#c0"+thecid; 
     var newcommhtml = '<div id="c0' + thecid + '" class="cnew clearfix">'; 
     var ii='c0'+thecid; 
     newcommhtml += '<section class="c-content">'; 
     newcommhtml += '<a href="#" onclick="cButton(\'' + ii + '\');" style="color:black;">x</a>'; 
     newcommhtml += '<p>' + nl2br(textval) + '</p> </section></div>';   
    }); 
})() 
+0

爲什麼代碼的圖片,而不是代碼本身? – techfoobar

+0

請把代碼而不是圖片 –

+0

對不起,我認爲它更舒服 –

回答

4

onclick工作,您需要cButton()全局訪問作爲全局窗口對象的屬性。

更改您的代碼:

window.cButton = function(ii) { 
    ... 
} 
+0

這應該是接受的答案! – kcak11

+0

是的,它非常感謝你,實際上阿切爾建議也工作,但我更喜歡這個答案導致其更短。 –

1

的問題是,要定義cButton文檔準備好處理程序裏面,所以它並不之外的存在。如果你宣佈外面的功能,然後事情可以訪問它...

function cButton(ii){ 
    document.getElementById(ii).style.display = 'none'; 
    alert('fdgfg'); 
} 

(function(){ 
    var thecid = 0; 
    $("#subber").on("click", function(){ 
     var thelm = "#c0"+thecid; 
     var newcommhtml = '<div id="c0'+thecid+'" class="cnew clearfix">'; 
     var ii='c0'+thecid; 
     newcommhtml += '<section class="c-content">'; 
     newcommhtml += '<a href="#" onclick="cButton(\''+ii+'\');" style="color:black;">x</a>'; 
     newcommhtml += '<p>'+nl2br(textval)+'</p> </section></div>';   
    }); 
})() 
+0

這工作謝謝你,但我不得不接受techfoobar答案導致其更短:) –

+0

不用擔心 - 很高興你得到它排序。我只是想進一步解釋:) – Archer