gpt4 book ai didi

Javascript:数组作为对象属性(& ZeroClipboard)

转载 作者:行者123 更新时间:2023-11-28 16:19:52 25 4
gpt4 key购买 nike

好吧,我承认一开始我有点难以理解。

我有一些代码运行良好。我创建了一个全局数组变量 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 作为全局变量是多么的邪恶,所以我正在尝试改进我的方式并创建一个对象来绑定(bind)整个业务。但它不起作用...

我已完成以下操作:

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 未定义。为什么我的 'add' 方法看不到我的 'z1' 属性?

[哦,在有人问我为什么不直接将 z1 放入 zc 之前,这是因为我访问了 z1来自代码中的其他位置,因此我将向该对象添加更多方法。)

最佳答案

z1[r] 更改为 this.z1[r]

我可能还建议将其设置为范围内的变量以避免查找。

var zr = this.z1[r] = new ZeroClipboard.Client();
zr.addEventListener()

关于Javascript:数组作为对象属性(& ZeroClipboard),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10068287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com