方法和事件
{% from 'components/codeblock.macro.html' import codeblock %}
方法通常是指通过组件元素的ID来调用该组件的方法去执行一些行为,例如 spz-lightbox 默认不在页面中展示,当我们想要它在页面中展示时,需要调用它的 open 方法来打开它。
事件通常是指当组件内执行了某种操作完成后,组件内自动抛出完成某种行为后的事件。我们可以监听该事件来在某些行为完成后做一些其他逻辑。例如当 spz-lightbox 打开后,可以通过监听 @open 事件来调用组件的方法或全局方法来实现一些逻辑。
先读结论
- 你在 HTML 上写的
@tap、@open等,是把“事件”映射到“动作/方法”的一段 DSL。 - 最常见的三种用法:显示/隐藏、切换 class、滚动到某个元素。
- 如果动作不生效,优先检查:目标
id是否存在、方法名是否正确、是否写成了完整表达式(如hello.hide)。
最常用的 3 个例子
1) 点击隐藏/显示
2) 点击切换 class
3) 点击滚动到指定元素
用法
@eventName 通常用来监听元素的事件处理器。支持的事件取决于元素。
语法的值时一种简单的域特定语言,形式为:
有关语法中各个部分的说明,请参见下表。
一个事件处理多个方法
使用分号(;)将各个方法分隔开,按顺序对同一事件执行多个方法。
全局定义的事件和方法
Lessjs 定义了全局 tap 事件,您可以在任何 HTML 元素(包括 Lessjs 元素 或 原生 HTML 元素)上监听事件。
Lessjs 还定义了全局 show、hide、scrollTo、toggleClass 和 toggleAttribute 方法,您可以在任何 HTML 元素上触发这些方法。
元素特有的事件
*-所有元素
输入元素
元素特有的方法
*(所有元素)
示例:
{{ codeblock('actions-and-events', 'show-and-hide') }}
全局方法
全局的方法挂载在 SPZ 上,通过使用 SPZ.methodName 形式来调用。
示例:
{{ codeblock('actions-and-events', 'copy') }}
AI 使用建议(LLM Ready)
- 章节密度:检测到 6 个二级标题。
- 示例密度:检测到 2 个代码块。
- 先读结论:优先提取本页“定义、约束、边界条件”。
- 再读证据:根据代码示例确认可执行写法,不直接依赖自然语言段落。
- 最后联动:涉及组件时同步查看对应组件页,避免文档与实现偏差。