Skip to content

@longmo-utils/browser / once

Function: once()

ts
function once(
   element, 
   event, 
   handler, 
   useCapture): void;

一次性事件监听 绑定一个只触发一次的事件监听器,触发后自动移除

Parameters

ParameterTypeDefault valueDescription
elementWindow | Document | HTMLElementundefined目标元素
eventstringundefined事件名称
handlerEventListenerOrEventListenerObjectundefined事件处理函数
useCapturebooleanfalse是否在捕获阶段触发事件,默认为 false

Returns

void

Examples

typescript
once(button, 'click', () => {
  console.log('This will only log once');
});
typescript
once(document, 'DOMContentLoaded', () => {
  console.log('DOM fully loaded');
  // 执行初始化逻辑
});
typescript
once(window, 'scroll', () => {
  console.log('User scrolled for the first time');
  // 显示提示或记录数据
});
typescript
once(form, 'submit', (e) => {
  e.preventDefault();
  console.log('First form submission');
  // 特殊处理首次提交
});
typescript
const image = new Image();
once(image, 'load', () => {
  console.log('Image loaded successfully');
  // 显示图片或触发其他逻辑
});
image.src = 'path/to/image.jpg';
typescript
const counter = { clicks: 0 };
once(button, 'click', (e) => {
  counter.clicks++;
  console.log(`Clicked at: ${e.timeStamp}`);
});

Released under the MIT License.