js怎么实现 自定义的标签 比如 extjs的一个方法 Ext.extend

js怎么实现 自定义的标签 比如 extjs的一个方法 Ext.extend,第1张

Ext = {

extend:function(options,paras){

//

}

}

访问的时候就是Ext.extend(options,paras)

"点击超链接可以d出一个EXT窗口" 当然是可以实现的。

1.其实,你这个问题的原因是,你不太了解javascript的 运行期上下文 造成的,你也可以理解为 作用域或者类似于指针都可以。

比如,你这里的 a 标签 的 onclick="this.mroeClick()" 这句代码,你函数调用前使用了 this 限定了上下文作用域, 你触发这个click 事件 的 这个this指向的是 <a/>标签本身,请问你的<a/>上有定义函数mroeClick()这个函数嘛?

因为我看不到你的代码,最简单的能访问到mroeClick() 的方法为 去掉this.,写为onclick="mroeClick(),然后你需要把mroeClick()放在全局作用域里,大概你的这个函数就是放在全局作用域里的,因为大部分没这个概念的人都是这样做的。其实这个函数无论放在哪都是可以访问得到的。你可以去改变访问是的上下文对象,只要在你当前加载过的任何一个地方都可以访问的到。

2.忘了回答你的Ext窗口了问题了。这个和上面的问题是一样的,首先你要明白你的Ext在哪个上下文导入的,那么Ext在那个上下文中是一个全局对象,和你当前要调用的地方的上下文是什么关系,如果同属于一个上下文,那么你直接就可以Ext.Msg.alert()了,如果Ext导入的地方是现在页面的父级,那么你parent.Ext.Msg.alert()就可以了,其他同理,你只需要在代码中把上下文环境切换到你要访问的东西的那个作用域里,无论在哪里都可以访问得到,只要被导入过。如果你能理解上下文作用域,将会使你的前端开发水平进阶。

你的tb.additem是在什么时候运行的?

在grid的beforeRender里加才能显示,如果toolbar已经render过了,再additem就没用了。

用静态的比较方便:

var tbar = new Ext.Toolbar({

items:[

'->',

{text:'welcome:admin'}

]

})

另外把你声明的顺序换一下,先var welcome, 再var tb,有时顺序反了就不行


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11704812.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存