在处理焦点事件时触发单击

Trigger a click when handling a focus event

本文关键字:单击 事件 处理 焦点      更新时间:2023-09-26

我试图确定为什么这样的东西不起作用:

$('a').focus( function() {
  $(this).click(); 
});

背景:

我正在尝试创建一个表单,在该表单中,跳到

各种元素(例如文本框等(将触发指向div 中锚点的链接,以便在填写表单时将相关文本滚动到视图中。

有没有更好的方法可以做到这一点?

 $('yourInput').on('focus', function(){
      $('yourAnchor').trigger('click');
 });

应该可以正常工作,但是由于新元素已被"单击",您可能会失去对输入字段的关注。我建议改用jQuery scrollTo插件。这将使您能够执行以下操作:

 $('yourInput').on('focus', function(){
       $('messageArea').scrollTo('yourAnchor');
 });

这是滚动以一种很好的动画方式发生的,并且没有触发浏览器事件。

发布的代码可能失败的部分原因是,1.定位点并不总是具有焦点事件,2.在聚焦后立即单击它可能是多余的,并且不会导致您正在寻找的更改。