1

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

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

背景:

我正在尝试创建一个表单,其中对各种元素(例如文本框等)的制表符将触发指向 div 中锚点的链接,以便在填写表单时将相关文本滚动到视图中。

有一个更好的方法吗?

4

1 回答 1

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

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

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

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

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

于 2012-05-15T18:53:29.510 回答