Ruby on rails 带有RoR链接图像的onmouseover

Ruby on rails 带有RoR链接图像的onmouseover,ruby-on-rails,ruby,image,dom-events,Ruby On Rails,Ruby,Image,Dom Events,我有一个按钮,我创建了一个图像。此按钮上方有一个鼠标,可切换到其他图像。基本Javascript。我需要一个Rails链接内的图像。我有没有办法在rails链接中包含Javascript事件 以下是我的工作内容: <%= link_to image_tag("../assets/images/buttonBig.png", :border=>0), :action => 'signup', :controller => 'prelogin' %> <%=

我有一个按钮,我创建了一个图像。此按钮上方有一个鼠标,可切换到其他图像。基本Javascript。我需要一个Rails链接内的图像。我有没有办法在rails链接中包含Javascript事件

以下是我的工作内容:

<%= link_to image_tag("../assets/images/buttonBig.png", :border=>0), :action => 
'signup', :controller => 'prelogin' %>
<%= link_to image_tag("../assets/images/buttonBig.png"
onmouseover="src='../assets/images/buttonBigHover.png'" 
onmouseout="src='../assets/images/buttonBig.png'", :border=>0), :action => 
'signup', :controller => 'prelogin' %>
0),:action=>
'注册',:controller=>'预登录'%>
以下是我想要的:

<%= link_to image_tag("../assets/images/buttonBig.png", :border=>0), :action => 
'signup', :controller => 'prelogin' %>
<%= link_to image_tag("../assets/images/buttonBig.png"
onmouseover="src='../assets/images/buttonBigHover.png'" 
onmouseout="src='../assets/images/buttonBig.png'", :border=>0), :action => 
'signup', :controller => 'prelogin' %>
0),:action=>
'注册',:controller=>'预登录'%>

好吧,最好不要使用Rails来解决这个问题。你应该呆在这里,像这样:

<%= link_to image_tag("../assets/images/buttonBig.png"), :action => 'signup', :controller => 'prelogin', :class => "button-class" %>

现在请注意,我是如何在这里为您的按钮使用相同的图像的。原因是您的浏览器只需加载一个图像。状态的不同就是图像背景位置的不同。因此,您可以对按钮进行切片,使两种状态在一个图像中都可用。然后测量像素差异,并在我上面写的
no repeat
属性之后设置这些坐标。在我的例子中,我猜测的是y坐标差

使用css更简单、更健壮,您必须有一个精灵而不是两个图像:

1º必须使用中的
buttonBig.png
buttonBigHover.png
创建精灵

2:现在您已将一个类应用于您的链接,例如:

在your view.html.erb中

<%= link_to image_tag("buttonBig.png", :border=>0), :action => 
'signup', :controller => 'prelogin', :class => "button" %>
a.按钮中:悬停
可以观察到背景位置为
0 50px
。您必须检查精灵的正确值


问候

你为什么要那样做?首先,我会使用CSS来实现这一点,它更简单、更健壮。如果不是CSS,在HTML中混合一些JS可能会很痛苦。我不喜欢一种方式胜过另一种方式。我是rails新手,不确定这样做的正确方法是什么。我不使用CSS,因为IE中存在渐变问题。CSS和JS在IE中同样容易出现渐变问题。如果需要,可以使用gif来避免任何潜在问题