gpt4 book ai didi

javascript - Enyo 自定义属性

转载 作者:行者123 更新时间:2023-11-30 18:16:24 25 4
gpt4 key购买 nike

我尝试在 enyo 中创建我自己的种类

enyo.kind(
{
name: "DeviceButton",
kind: "Button",
caption: "",
published: { userAgent: "" },
flex: 1,
onclick: "butclick",
butclick: function() { console.log("User agent changed to " + this.userAgent) }
})

但是当我点击时没有显示任何内容

如果我这样做

onclick: console.log("User agent changed to " + this.userAgent)

打印出来this.userAgent是undefined

我做错了什么?

顺便说一句,是否可以通过 onclick 发送参数(以便响应点击的函数获得一个变量)

谢谢

最佳答案

您在这里遇到的问题是 onclick 属性实际上为 Enyo 提供了事件处理程序的名称,以便在收到点击时将事件发送到。 “butclick”事件不会分派(dispatch)给 DeviceButton,而是分派(dispatch)给它的父级。

如果您想完全在您的种类中处理事件,那么您需要将其设置为“处理程序”。在 Enyo 2.x 中,您可以这样做:

enyo.kind(
{
name: "DeviceButton",
kind: "Button",
caption: "",
published: { userAgent: "" },
flex: 1,
handlers {
onclick: "butclick"
},
butclick: function() { console.log("User agent changed to " + this.userAgent) }
})

在 Enyo 1.x 中,您只需将处理函数命名为“onclickHandler”。我提到 Enyo 1 解决方案是因为我看到您的定义中有“flex: 1”。 Enyo 2 不支持 Flexbox,我们有一个“Fittable”系统。

关于javascript - Enyo 自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13164216/

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