2012-02-01 76 views
0

我有一個腳本,它使用canvas來操作。我這樣稱呼它:Javascript擴展性

namespace.module.do(canvas, paramString); 

我想移動電話到畫布本身,因此它會有點類似:

<canvas namespace.module.dobehavior=paramString /> 

我可以用JS,如果不這樣做我能接近它多遠?

回答

0

在JQuery的

$(function() { 
    $("canvas[ns.mod.colorBehavior]") { 
     var color = $(this).attr("ns.mod.colorBehavior"); 
     if (color == "red") { 
      var context = this.getContext('2d'); 
      context.fillStyle = "#ff0000"; 
      context.fillRect(0,0,width,height); 
     } 
    } 
} 

其中寬度和喚起注意是畫布元素的寬度和高度(或類似10000更高的值)。

+0

非常光滑,歡呼! – Dmitry 2012-02-02 12:03:55

+0

我可以幫助我快樂! – 2012-02-02 15:45:03

1

畫布是一個DOM對象,所以你可以附加功能。在您的示例:

document.getElementsByTagName("canvas")[0].namespace.module.dobehavior = function(paramString) { ... code ... }; 

(顯然,document.getElementsByTagName( 「畫布」)[0] .namespace和document.getElementsByTagName( 「畫布」)[0] .namespace.module將需要是一個對象,所以你可能需要做

document.getElementsByTagName("canvas")[0].namespace = { module : { dobehavior : function(paramString) { ... } } }; 

,然後如果你有canvas元素的地方(也可以通過var canvas = document.getElementsByTagName("canvas")[0];可能),你可以做

canvas.namespace.module.dobehavior("someString"); 

那是什麼意思?

+0

有點,我的最終目的是避免調用JS,而是通過附加新行爲來擴展功能,例如應該通過調用引擎蓋下的js來填充畫布。 – Dmitry 2012-02-01 12:53:44

+0

啊,看我的其他答案:) – 2012-02-02 11:57:26