我在rails应用程序中有一个link_to
,它的功能是作为一个工具提示。当用户将鼠标悬停在链接上时:它显示一些帮助文本。
如果用户不小心点击了工具提示:我不想跳到页面顶部的默认行为。我知道用JavaScript我可以preventDefault
,但是有没有一个简单的rails方法来获得同样的行为?
我想到了remote: true
,但它仍然跳到页面的顶部。
代码:
<%= link_to "#", title: 'my helper text', remote: true do %>
<i class="fa fa-question-circle"></i>
<% end %>
字符串
4条答案
按热度按时间rslzwgfq1#
使用空的锚将导致滚动到文档开始,正如您所经历的那样。但是,如果使用不存在的锚,则不会导致滚动位置发生变化。例如:
字符串
不过,这仍然会更改文档URL和浏览器历史记录,这是一种更糟糕的用户体验。
对于那些不应该改变页面的链接,比如那些通过JS处理的链接,你绝对应该使用渐进式增强,并使用最合适的方法(例如,
return false
或e.preventDefault
)阻止JS中的浏览器操作。如果您的工具提示实际上不应该链接到任何地方,那么最好将它们更改为另一个内联元素,例如
span
。ergxz8rk2#
在这种情况下,我通常都能成功地使用
nil
。字符串
经过一些研究,我看到一些人声称应该使用
javascript:;
,但我在使用nil
时没有遇到任何问题。cotxawn73#
除非你需要一个真正的链接,否则不要使用锚元素。使用合适的HTML元素。在这种情况下,你应该使用
span
元素。你应该能够做到这一点:
字符串
或者甚至是这个:
型
7vhp5slm4#
我最终使用了一个
<a>
标记沿着与onclick="return false;"
作为建议,在这个答案:字符串