我有一个类似tweetEnyo的组件,是用enyo脚本创建的。基于它的类型,我想执行一些操作。
有没有办法在运行时找到在enyo中创建的那种组件?
发布于 2013-04-24 21:30:20
您应该能够在运行时访问kind属性。下面是一个检测所选项目类型的示例:
http://jsfiddle.net/RoySutton/frTFK/
如果需要使用调试器查找它,可以将ID与全局enyo对象的$ hash一起使用。例如:
enyo.$.app_myKind.kind我不是想从即将发布的博客文章中抢风头,但在Chrome/Firefox网页检查器中,$0是最后一个被检查的元素。因此,enyo.$[$0.id].kind是被检查项的类型。
我确实注意到,在我的示例中,App与它没有任何关联。这就是为什么。
更新: App没有使用特定的类型声明,将回退到父级的默认类型,在本例中为Control。您可以使用.defaultKind访问该值。此外,您可以使用对kind的实际引用来指定kind (例如kind:enyo.Button),因此不能依赖.kind。
获取名称的正确方法是使用.kindName,它将是实际的类型。
发布于 2013-04-24 18:43:08
来自enyo网站:
基本enyo.Control的工作方式与
标记非常相似。您可以指定类和属性,并为其指定样式。例如。
new enyo.Control({content: "Hello From Enyo", classes: "foo",
style: "color: red", attributes: {tabIndex: 0}}).renderInto(document.body);所以你可以这样做:
new enyo.Control({content: "Hello From Enyo", classes: "foo",
style: "color: red", attributes: {tabIndex: 0, enyo:true}}).renderInto(document.body);这会将enyo的attr设置为true并进行检查。任何具有该属性的组件都是enyo组件。
示例:http://jsfiddle.net/NKTRe/
https://stackoverflow.com/questions/16189305
复制相似问题