2012-08-09 64 views
0

功能savefromtextarea()& varialbe全球未定義溫家寶保存按鈕的點擊稱爲...

我的代碼這一部分......我需要訪問從texarea方法保存當在保存文本按鈕點擊...當我嘗試調用saveFromTextArea方法及其引發地球是不確定的,但全球範圍內的變量是全局變量...動態的JavaScript函數調用未定義

ME.ZFP.annotaion.Text = function() { //function to annotate the text 

var canvas = myscreen.getTempCanvas().ele; 
var context = canvas[0].getContext('2d'); 
var global = this; 

$(canvas).mousedown(function(e){ //on mouse down event 

    if ($('#textAreaPopUp').length === 0) { 

     var mouseX = e.pageX - this.offsetLeft + $(canvas).position().left; 
     var mouseY = e.pageY - this.offsetTop; 

     //append a text area box to the canvas where the user clicked to enter in a comment 
     var textArea = "<div id='textAreaPopUp' style='position:absolute;top:"+mouseY+"px;left:"+mouseX+"px;z-index:30;'><input type='text' id='textareaTest' ></input>"; 
    //Click on save buttom global.saveTextFromArea undefined 
     var saveButton = "<input type='button' value='save' id='saveText' onclick='global.saveTextFromArea("+mouseY+","+mouseX+");'></div>"; 
     var appendString = textArea + saveButton; 
     $("#container").append(appendString); 
    } 
}); 
//Function to be called 
this.saveTextFromArea = function(y,x){ 
     //get the value of the textarea then destroy it and the save button 
     var text = $('textarea#textareaTest').val(); 
     $('textarea#textareaTest').remove(); 
     $('#saveText').remove(); 
     $('#textAreaPopUp').remove(); 

} 

    } 

感謝 阿然

+6

我沒有在任何地方看到'saveTextFromArea'(或'savefromtextarea')。你的問題和疑問到底是什麼?顯然你的代碼示例並不完整,所以我們很難(如果不是不可能的話)來幫助你,因爲有很多未知的東西。 *猜測*是浪費我們和你的時間。請創建一個http://jsfiddle.net/演示,其中顯示了什麼是錯誤的並澄清了您的問題。 – 2012-08-09 11:35:47

+0

「動態調用」是什麼意思?隱含的「靜態調用」(不管那意味着什麼)工作? – nnnnnn 2012-08-09 11:40:05

+0

菲利克斯國王...請參閱修改後的代碼.. – 2012-08-09 12:50:52

回答

0

好你的代碼有一些錯誤,修復在this fiddle
您忘記了代碼最後的});
最後(挑剔)我糾正:
if ($('#textAreaPopUp').length == 0)
if ($('#textAreaPopUp').length === 0)

但是...這是否糾正代碼解決問題了嗎?

+0

有什麼錯誤?他們如何修復?如果鏈接關閉,你的答案是無用的。 – 2012-08-09 11:56:33

+0

補充說明。 – GitaarLAB 2012-08-09 11:57:37

0

內聯事件處理程序像你onclick='...'只能引用全局範圍的變量和函數,但是如果一個函數內聲明的命名global變量(一個的document.ready處理程序中,例如),那麼它是不是全球性的在線屬性事件處理程序不能看到它。