javascript - MDL 选项卡的 "Tab Rendered"事件

标签 javascript material-design-lite

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

我最初的方法只是处理选项卡元素的单击事件,然后相应地设置焦点。我遇到的问题是,在文本输入元素上调用 .focus() 不起作用,因为它试图在文本元素实际可见之前设置焦点,而浏览器似乎不喜欢为您这样做。如果我将焦点设置在 setTimeout() 延迟内,它会起作用,但这感觉不是一个非常干净的方法。

当单击选项卡并完成显示其内容时,是否可以处理任何类型的事件?我还考虑过使用突变观察器来检测文本输入元素何时可见,但浏览器对这些元素的支持仍然相当有限。

最佳答案

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

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

Material-Design-Lite source, MaterialTab

我认为还有一些库可以像 jQuery 一样做到这一点。您还可以看到

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

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

关于javascript - MDL 选项卡的 "Tab Rendered"事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33377286/

相关文章:

javascript - 在新窗口中打开相同的 AngularJS 应用程序并在父窗口中调用函数

Javascript 拼接正在删除除请求的元素之外的所有内容

javascript - 将javascript变量从一个函数/文件传递到另一个函数/文件

angularjs - mdl-textfield 不考虑 ngModel 更改

javascript - 函数名, "onButtonClick"或 "onClickButton"

javascript - 如果单击按钮,则在表单输入中输入值(在 Javascript 中)

html - Ember.js 应用程序中的 Material design lite 输入在路由转换后丢失了它的设计

material-design - 为什么 MDC 不推荐使用 Material Design lite(MDL)?

html - 谷歌 MDL : drawer icon not centered

javascript - 使用动态 innerHTML 更改处理按钮 mdl-js 样式