bro-tools
Version:
bro-tools 提供了一些用于浏览环境中的工具函数
32 lines (31 loc) • 2.98 kB
TypeScript
import type { ElementMatchers, SelectorList, CancelHandler } from "./Element";
/**
* 在 eventName 事件触发在符合条件的目标元素上时,聚焦到匹配的第一个后代元素(包括自身)
* @param targetElements : ElementMatchers 目标元素是否符合条件的测试选项列表,只要符合其中任一测试选项,就算通过
* @param eventName : string 监听事件的名字
* @param selectorsOfOperatedChild : SelectorList 被操作的子元素的选择器
* @param operator : Operator 执行的操作函数,会在每一个匹配的元素上调用 operator ,并将 元素 和 事件 传给 operator;operator 的返回值 表示是否停止对其它匹配的子元素的进行遍历
* @param onlyFirst ?:boolean|null|undefined 可选;默认值:false;表示是否针对匹配的第一个子元素调用 operator,忽略匹配的其它子元素
* @param excludeTargets ?:ElementMatchers|null|undefined 可选; 排除的目标元素;优先级高于 targetElements ,即:如果 目标元素匹配 excludeTargets ,即使该目标元素也匹配 targetElements ,该元素也不会被通过
*
* @returns CancelHandler 返回一个函数,调用该函数,可取消 本次 focusChildElementWhenEventOnTarget 的设置
*/
export declare function focusChildElementWhenEventOnTarget(targetElements: ElementMatchers, eventName: string, selectorsOfFocusedChild: SelectorList, excludeTargets?: ElementMatchers | null | undefined): CancelHandler;
/**
* 本方法是用于解决ipnut输入框 或 textarea 在触摸屏中不灵敏的问题,该问题的原因有以下两点(其中第一个原因是主要原因):
* 1. 触发input元素获取焦点的事件有延迟;
* 2. input元素的响应范围较小;
*
* 解决方案:
* 当input或其父元素上触发无延迟事件时,用代码让input元素获取焦点;
* 经过测试,推荐用无延迟的事件有:touchstart、click 等
*
*
* 在 eventName事件触发在符合条件的目标元素上时,将焦点聚焦到该元素的后代元素中的 第一个input 或 textarea 元素 或 目标元素本身(当目标元素是input 或 textarea 元素时)
* @param targetElements : ElementMatchers 目标元素是否符合条件的测试选项列表,只要符合其中任一测试选项,就算通过
* @param eventName ? : string | null 可选;默认值:"click"; 监听事件的名字
* @param excludeSelf ? : boolean | null 可选;默认值:false ; 表示当点击的目标元素是 input 或 textarea 元素时,不做设置焦点的动作;即 排除目标元素是 input 或 textarea 的情况
*
* @returns CancelHandler 返回一个函数,调用该函数,可取消 本次 focusInputTextareaWhenEventOnTarget 的设置
*/
export declare function focusInputTextareaWhenEventOnTarget(targetElements: ElementMatchers, eventName?: string | null, excludeSelf?: boolean | null): CancelHandler;