好吧,我承认一开始我有点过头了。
我有一些代码工作正常。我创建了一个全局数组变量z1=[];
,然后使用具有以下代码的唯一引用键 r 将 ZeroClipboard 对象存储在数组中。(这本身可能是邪恶的,但它确实有效。)
function zc(r){
var a="RP"+r,b="RDC"+r,c="RP"+r;
z1[r]=new ZeroClipboard.Client();
z1[r].addEventListener('mouseDown',function(client){z1[r].setText(document.getElementById(c).innerHTML);});
z1[r].addEventListener('complete',function(client,text){$('#'+a).aH("#D6EBFF",1000);});
z1[r].glue(a,b);}
我最近意识到将 z1 作为全局变量是多么邪恶,所以我正在尝试改正我的方式并创建一个对象来绑定整个业务。但它不工作...
我做了以下事情:
var zc={
z1: [],
add:function(r){
var a="RP"+r,b="RDC"+r,c="RP"+r;
z1[r]=new ZeroClipboard.Client();
z1[r].addEventListener('mouseDown',function(client){z1[r].setText(document.getElementById(c).innerHTML);});
z1[r].addEventListener('complete',function(client,text){$('#'+a).aH("#D6EBFF",1000);});
z1[r].glue(a,b);}
}
我现在打电话zc.add(r)
而不是zc(r)
像以前那样打电话。
我得到的 Firebug 错误是z1 is not defined
. 为什么我的'add'
方法看不到我的'z1'
属性?
[哦,在有人问我为什么不z1
按zc
原样输入之前,那是因为我z1
从代码中的其他地方访问,所以我要为对象添加更多方法。)