在一个站点上工作,该站点具有多个focus()
事件,这些事件分布在可能有十几个 js 文件中,这些文件都处理将焦点放在页面上的第一个文本输入上(即:在登录页面上,电子邮件字段会自动获得焦点)。我想为所有触摸设备禁用此功能。
我们已经在使用 Modernizr,所以我可以只检查.no-touch
HTML 标签上的类,看看用户是否在触摸设备上。但是,为了避免重复代码并进行未来证明(因此我们不必记住每次添加新焦点事件时都要检查),我只想扩展本机焦点事件以检查.no-touch
类并且仅在该类存在时继续。
我将如何扩展本机focus()
事件,以便它检查.no-touch
类的 HTML 标记并在它存在时继续,但仅在未将匿名函数传递给focus()
事件时运行此检查?
例如,有时我们将焦点与匿名函数一起使用,而我不需要检查.no-touch
,如下所示:
$("#login-email-address").focus(function(){ ... });
有道理?如果没有,请告诉我如何澄清...