0

関数 savefromtextarea() & varialbe グローブは、保存ボタンのクリック時に呼び出される未定義のウェンです...

これは私のコードの一部です...テキストの保存ボタンをクリックしたときにtexareaメソッドから保存にアクセスする必要があります... saveFromTextAreaメソッドを呼び出そうとすると、そのスローグローブは未定義ですが、グローブ変数はグローバル変数です...

    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

あなたのコードにはいくつかのエラーがあり、このフィドルで修正されています。コードの最後を
忘れました。 最後に (つまらないことを言って) 修正しました: to});

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 に答える