Rails中的HAML帮助器创建javascript:void(0)链接

时间:2013-04-17 01:33:44

标签: ruby-on-rails haml

如何在Rails中为HAML定义帮助程序以定义href='javascript:void(0)'的链接?

即。这是一个简写:

%a.link#somelink(href="javascript:void(0)") Link to Foo

希望比这更整洁:

- js_link {:class=>'link', :id=>'somelink'} "Link to Foo"

我的意思是HAML助手,而不是传统的Rails助手。我希望有类似的东西:

%js.link#somelink Link to Foo

1 个答案:

答案 0 :(得分:1)

我认为你将会遇到困难。你能做到的最简单的可能是

#somelink.link
  - js_link 'Link to Foo'

但是这会将idclass属性添加到链接周围的div而不是直接添加到它。如果选择器用于CSS或jQuery目的,您可以完全不使用属性并使用周围的元素信息来访问链接:

#list-of-links
  %a{href: "javascript:void(0);"}
  %a{href: "javascript:void(0);"}
  %a{href: "javascript:void(0);"}

在JavaScript中:

jQuery('#list-of-links a').on('click', function() { return doSomething(); });

所有这一切,可以为Haml创建custom filter,类似于:css:script,类似

Haml::Filters.register_tilt_filter "JavaScriptLink"

但要实现这一点,您必须定义自己的"JavaScriptLink" Tilt模板系统,即便如此,我也不确定它是否会起作用或看起来更漂亮。