2010-06-08 62 views
1

我正在從一些變量中獲取一些信息,我已經在此函數之外定義了一個用於創建html svg文本框的變量。使用JavaScript呈現HTML;什麼都沒有出現,但值會提示

這是這是造成我的麻煩功能:

RenderTextBox:function() 
{ 
    alert('this.x: ' + this.x); 
    alert('this.y: ' + this.y); 
    this.textBox = paper.text(this.x, this.y, this.htmlTextBox); 
} 

警報工作prefectly,並提示我的預期值。然而,應該創建文本框的最後一行讓他們無處可見。有人知道爲什麼嗎?

如果我用功能的最後一行中的數字值替換'this.x, this.y..',文本框被正確放置。只有當我使用'this.x'和'this.y'時,我纔有問題。

回答

4

有時候數值會以字符串轉換。這是關於javascript的一個非常不好的地方:變量不需要輸入。

你應該儘量把它解析爲INT,以使它們爲整數再次反應:http://www.w3schools.com/jsref/jsref_parseInt.asp

+1

+1,也跟着道格·克羅克福德的意見,並總是包括基數(10,如果你在工作的基礎-10)。 – Skilldrick 2010-06-08 10:09:38

0

大膽猜測:在你嘗試把this.xthis.y到變量,然後通過這些變量的函數調用中最後一行?

喜歡的東西:

var tx = this.x; 
var ty = this.y; 
this.textBox = paper.text(tx, ty, this.htmlTextBox); 
+0

這相當於OP的片段。 – Chii 2010-06-08 10:11:58