首页 文章

MDL选项卡的“选项卡呈现”事件

提问于
浏览
1

我正在使用MDL选项卡组件 . 单击选项卡并显示该选项卡的内容后,我想将光标焦点设置在该选项卡内容中的某个文本输入中 .

我最初的方法是处理tab元素的click事件,然后相应地设置焦点 . 我遇到的问题是在文本输入元素上调用.focus()是行不通的,因为它试图在文本元素实际可见之前设置焦点,这似乎没有浏览器为你做的 . 如果我将焦点设置在setTimeout()延迟中它可以工作,但这并不是一种非常干净的方法 .

单击选项卡并完成显示内容后,是否可以处理任何类型的事件?我还研究了使用变异观察器来检测文本输入元素何时可见,但浏览器支持仍然相当有限 .

2 回答

  • 0

    不,没有这样的选择 . 我认为你必须使用setTimeout或setInterval

    你可以查看来源 . 也许编写自己的MaterialTabs构造函数并注册它 .

    Material-Design-Lite source, MaterialTab

    我认为还有一些lib可以像jQuery一样做到这一点 . 你也可以看到

    https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver

    这仅适用于现代浏览器,但具有遗留实现 .

  • 0

    我已将这一行: window.dispatchEvent(new Event("tabSelected")); 添加到 selectTab() 函数末尾的material.js文件中 . 这样,在显示选项卡内容后立即触发事件 .

相关问题