0

函数 savefromtextarea() & varialbe globe 未定义,在单击保存按钮时调用...

我的代码的这一部分...单击保存文本按钮时,我需要从 texarea 方法访问保存...当我尝试调用 saveFromTextArea 方法时,它的 throws 地球未定义,但地球变量是全局变量...

    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();
    
}

   }

谢谢阿杰恩

4

2 回答 2

0

好吧,您的代码有一些错误,已在此 fiddle中修复。
你在代码的最后忘记});了。
最后(挑剔)我更正
if ($('#textAreaPopUp').length == 0)了:
if ($('#textAreaPopUp').length === 0)

但是..这个更正的代码能解决你的问题吗?

于 2012-08-09T11:44:12.483 回答
0

像您这样的内联事件处理程序onclick='...'只能引用全局范围的变量和函数,但是如果您的变量命名global是在函数内声明的(例如在 document.ready 处理程序内),那么它不是全局的并且内联属性事件处理程序不能看见。

于 2012-08-09T11:44:25.610 回答