我试图确定为什么这样的事情不起作用:
$('a').focus( function() {
$(this).click();
});
背景:
我正在尝试创建一个表单,其中对各种元素(例如文本框等)的制表符将触发指向 div 中锚点的链接,以便在填写表单时将相关文本滚动到视图中。
有一个更好的方法吗?
我试图确定为什么这样的事情不起作用:
$('a').focus( function() {
$(this).click();
});
背景:
我正在尝试创建一个表单,其中对各种元素(例如文本框等)的制表符将触发指向 div 中锚点的链接,以便在填写表单时将相关文本滚动到视图中。
有一个更好的方法吗?
$('yourInput').on('focus', function(){
$('yourAnchor').trigger('click');
});
应该可以正常工作,但是由于新元素已被“单击”,您可能会失去对输入字段的关注。我建议改用 jQuery scrollTo插件。这将使您能够执行以下操作:
$('yourInput').on('focus', function(){
$('messageArea').scrollTo('yourAnchor');
});
这是滚动以一种很好的动画方式发生并且不会触发浏览器事件。
您发布的代码可能失败的部分原因是,1. 锚并不总是有焦点事件,2. 在焦点后立即单击它可能是多余的,不会导致您正在寻找的更改。