首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript可扩展性

Javascript可扩展性
EN

Stack Overflow用户
提问于 2012-02-01 20:17:59
回答 2查看 202关注 0票数 0

我有一个脚本,它操纵画布。我这样称呼它:

代码语言:javascript
复制
namespace.module.do(canvas, paramString);

我想把调用移到画布本身,所以它有点类似于:

代码语言:javascript
复制
<canvas namespace.module.dobehavior=paramString />

我能用JS做到这一点吗?如果不能,我能离它有多近?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-02 19:57:12

在JQuery中

代码语言:javascript
复制
$(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);
        }
    }
}

其中width和height是画布元素的宽度和高度(或更高的值,如10000)。

票数 0
EN

Stack Overflow用户

发布于 2012-02-01 20:23:09

画布是一个DOM对象,所以您可以将函数附加到它。在您的示例中:

代码语言:javascript
复制
document.getElementsByTagName("canvas")[0].namespace.module.dobehavior = function(paramString) { ... code ... };

(显然,document.getElementsByTagName("canvas").namespace和document.getElementsByTagName("canvas").namespace.module需要是一个对象,所以您可能需要这样做

代码语言:javascript
复制
document.getElementsByTagName("canvas")[0].namespace = { module : { dobehavior : function(paramString) { ... } } };

然后,如果您在某个地方有画布元素(可能也是通过var canvas = document.getElementsByTagName("canvas")[0];),您可以这样做

代码语言:javascript
复制
canvas.namespace.module.dobehavior("someString");

你是这个意思吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9095671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档